Fügen Sie keinen Inhaltsfilter für die Seitenvorlage hinzu

Ich möchte keine function von meinem Thema auf einer Seitenvorlage geladen haben.

  1. Ist das die korrekte Syntax?
  2. Was bedeutet 99 hier? add_filter('the_content', 'oswc_formatter', 99);
  3. Könnte ich die Bedingung auf dem add_filter anstatt was ich getan habe?

Das ist mein Code:

 function oswc_formatter($content) { if( !is_page_template( 'template-flat.php' ) ) { $new_content = ''; /* Matches the contents and the open and closing tags */ $pattern_full = '{(\[raw\].*?\[/raw\])}is'; /* Matches just the contents */ $pattern_contents = '{\[raw\](.*?)\[/raw\]}is'; /* Divide content into pieces */ $pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE); /* Loop over pieces */ foreach ($pieces as $piece) { /* Look for presence of the shortcode */ if (preg_match($pattern_contents, $piece, $matches)) { /* Append to content (no formatting) */ $new_content .= $matches[1]; } else { /* Format and append to content */ $new_content .= wptexturize(wpautop($piece)); } } return $new_content; } } // Before displaying for viewing, apply this function add_filter('the_content', 'oswc_formatter', 99); add_filter('widget_text', 'oswc_formatter', 99); 

Solutions Collecting From Web of "Fügen Sie keinen Inhaltsfilter für die Seitenvorlage hinzu"

ok hier ist die antwort .. pheww

 function oswc_formatter($content) { if( is_page_template( 'template-flat.php' ) ) { return $content; }else{ $new_content = ''; /* Matches the contents and the open and closing tags */ $pattern_full = '{(\[raw\].*?\[/raw\])}is'; /* Matches just the contents */ $pattern_contents = '{\[raw\](.*?)\[/raw\]}is'; /* Divide content into pieces */ $pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE); /* Loop over pieces */ foreach ($pieces as $piece) { /* Look for presence of the shortcode */ if (preg_match($pattern_contents, $piece, $matches)) { /* Append to content (no formatting) */ $new_content .= $matches[1]; } else { /* Format and append to content */ $new_content .= wptexturize(wpautop($piece)); } } return $new_content; } } 

Nicht sicher, ob Sie ein Plugin verwenden, aber wenn Sie dies tun, ist es nicht empfehlenswert, es zu bearbeiten, da Ihre Änderungen bei der nächsten Aktualisierung überschrieben werden.

Die andere Möglichkeit, den Filter unter Bedingung zu deaktivieren, wäre:

 if( is_page_template( 'template-flat.php' ) ){ remove_filter( 'the_content', 'oswc_formatter'); remove_filter( 'widget_text', 'oswc_formatter'); } 

Die 99, die du auf dem Filter hast, ist die Priorität. Je niedriger es ist, desto früher wird es ausgeführt. So filtern Sie hier wird als einer der neuesten ausgeführt werden.