我不想让我的主题在页面模板上加载函数。
这是正确的语法吗99在这里是什么意思?add_filter(\'the_content\', \'oswc_formatter\', 99);
我可以把这个条件应用到add_filter
而不是我所做的这是我的代码:
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);
SO网友:mathieuhays
不确定您是否使用插件,但如果使用插件,则不建议编辑它,因为您的更改将在下次更新时被覆盖。
另一种在条件下停用过滤器的方法是:
if( is_page_template( \'template-flat.php\' ) ){
remove_filter( \'the_content\', \'oswc_formatter\');
remove_filter( \'widget_text\', \'oswc_formatter\');
}
过滤器上的99是优先级。它越低,执行得越早。因此,这里的过滤器将作为最新的过滤器之一执行。