目前,在我的插件上下文相关帖子中,我可以使用以下选项自动将相关帖子添加到内容中
add_filter(\'the_content,\'ald_crp\')
我知道我可以通过添加一个大于10的数字(这是WordPress的默认值)来更改过滤器的优先级。
add_filter(\'the_content,\'ald_crp\',20)
然而,我想做的是让用户在我可以使用的选项页面中设置过滤器的优先级,并相应地设置\\u内容过滤器。
插件已经有了自己的设置页面。
我的插件不使用类。它使用函数。
对此有什么建议/代码示例吗?
最合适的回答,由SO网友:fuxia 整理而成
将优先级保存在选项中,并将该值传递给add_filter
:
add_action( \'template_redirect\', \'wpse_81687_prepare_filter\' );
function wpse_81687_prepare_filter()
{
$my_options = get_option( \'my_options\' );
$priority = isset ( $my_options[\'content_filter_priority\'] )
? $my_options[\'content_filter_priority\']
: 10;
add_filter( \'the_content\', \'ald_crp\', $priority );
}
在我的示例中,我注册
the_content
过滤期间
template_redirect
因为之前不需要它。你不需要过滤器
wp-admin
或登录页<你甚至可以使用
the_post
作为挂钩,而不是
template_redirect
. 但是……另一段代码可能会调用
echo apply_filters(\'the_content\', $some_text );
不打电话
setup_postdata()
之前