基于用户输入的内容筛选器的自定义优先级(_C)

时间:2013-01-15 作者:Ajay

目前,在我的插件上下文相关帖子中,我可以使用以下选项自动将相关帖子添加到内容中

add_filter(\'the_content,\'ald_crp\')
我知道我可以通过添加一个大于10的数字(这是WordPress的默认值)来更改过滤器的优先级。

add_filter(\'the_content,\'ald_crp\',20)
然而,我想做的是让用户在我可以使用的选项页面中设置过滤器的优先级,并相应地设置\\u内容过滤器。

插件已经有了自己的设置页面。

我的插件不使用类。它使用函数。

对此有什么建议/代码示例吗?

1 个回复
最合适的回答,由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() 之前

结束

相关推荐

Per theme plugins?

我正在构建一个插件,它可以对博客页面的评论部分进行大量修改。它认为我不能用一种适用于所有主题的方式来实现这一点——根据使用的特定主题,必须调整一些CSS。我猜在将来,插件还会在数据库中存储一些数据。所以我想它应该是一个插件,而不是一个主题。(?)因此,这些问题:有没有可能以某种方式表明插件只能处理这个主题和那个主题?然后发布一些相当简单的插件版本,每个版本都针对一组特定的主题进行了调整?或者插件应该与。。。是否存在所有主题?除了按主题插件和/或分叉和修改现有主题之外,你能想出其他解决方案吗?也许是儿童主题