WordPress应用筛选器并且是单数()

时间:2013-02-08 作者:user1895623

我想知道是否有人听说或创建了以下问题的解决方法:

假设有一个插件有这样的代码,

add_filter(\'the_content\'.\'some_func\');
some_func($content)
{
    if(is_singular())
    {
    //do something and return the content
    }
    else
    {
    //just return the content,dont modify it in any way.
    }
}
现在在我的插件中有这样的代码

    $doggy = apply_filters(\'the_content\',$content)
但是,由于早期插件的作者指定了is\\u singular,因此我的$doggy将无法获得早期插件在其他情况下应用的更改内容。因此,我无法使用实际的最终内容在插件中做任何我想做的事情。

非常感谢您的帮助,因为我刚刚读到一篇文章,作者说,“is singular的设计使得过滤器只适用于主WP查询。”因此,我还有一个问题——关于是否有任何方法可以拦截这一点。我想在我的代码中这样使用这个应用过滤器操作,

wp_insert_post_data($data,$postarr)
{
$data["post_content"] = apply_filters(\'the_content\',$data["post_content"])
$data["post_content"] = my_func($data["post_content"]);
return $data;
}
并在应用最终将应用于内容的所有过滤器后,操作故事内容,然后返回数据。

我希望我已经把事情解释清楚了。我需要一个变通办法,因为我认为不存在正式的解决方案。而且——做我需要做的事——使用——保存帖子或发布帖子并不是我的选择。此外,我无法在\\u内容过滤器上执行此操作。我需要一个在将POST数据插入数据库之前有效的解决方案。所以请不要这样建议。

向你致意,app\\U狂人。

1 个回复
SO网友:birgire

您可以尝试删除筛选器

remove_filter(\'the_content\', \'some_func\');
并使用自定义版本的some_func() 调用some_func_mod():

add_filter(\'the_content\', \'some_func_mod\');

结束

相关推荐