Exemple #1
0
 /**
  * Remove all Wr shortcodes from content
  * @param string $content
  * @return string Content without shortcode tags
  */
 public static function remove_wr_shortcodes($content)
 {
     global $wr_megamenu_shortcodes;
     $wr_shortcode_tags = !empty($wr_megamenu_shortcodes) ? $wr_megamenu_shortcodes : WR_Megamenu_Helpers_Shortcode::wr_mm_shortcode_tags();
     $tagnames = array_keys($wr_shortcode_tags);
     $tagregexp = join('|', array_map('preg_quote', $tagnames));
     // replace opening tag
     $regex = '\\[' . '(\\[?)' . "({$tagregexp})" . '(?![\\w-])' . '( ' . '[^\\]\\/]*' . '(?:' . '\\/(?!\\])' . '[^\\]\\/]*' . ' )*?' . ' )' . '(?:' . '(\\/)' . '\\]' . '|' . '\\]' . ' )' . '(\\]?)';
     // 6: Optional second closing brocket for escaping shortcodes: [[tag]]
     $content = preg_replace("/{$regex}/s", '<p>', $content);
     // replace closing tag
     $regex = "\\[\\/({$tagregexp})\\]";
     $content = preg_replace("/{$regex}/s", '</p>', $content);
     // remove redundant p tag
     $content = preg_replace('/(<p>)+/', '<p>', $content);
     $content = preg_replace('/(<\\/p>)+/', '</p>', $content);
     $content = preg_replace('/(<p>\\s*<\\/p>)+/', '', $content);
     return $content;
 }