2010-01-12 50 views
1

我正在编写一个Wordpress插件,每当'the_author'过滤器事件触发时都会进行字符串处理。但是,一些小部件还包含'the_author'事件,随后我的插件被触发,不应该发生。所以我试图检测我的插件是否被某些小部件调用,但目前为止无济于事。我想忽略的一个小部件叫做'Recent Comments'。我曾尝试:如何确定Wordpress插件是否从Wordpress小部件中调用

function wrap_author($the_author) { 
    if(!is_active_widget('recent_comments')) { 
     $the_author = '<span class="CA_author">' . $the_author . '</span>'; 
     return $the_author; 
    } 
} 

这可能是因为我不使用该插件的正确名称,我用Google搜索了很多以找到最近的评论插件的适当的内部名称,但不能找到它至今。或者,也许我不应该使用is_active_widget函数。

回答

1

如果您只想让您的主要内容区域触发,请使用in_the_loop()函数检查并查看您是否处于内容循环中。这可能会得到你的存在方式99%,但你几乎肯定会发现,会造成某些挫折边缘情况;)

if (in_the_loop()) { 
// do stuff 
} 

这将让你的代码在侧边栏的所有执行。

+0

这实际上是一个相当不错的解决方案,我认为这将完成这项工作,谢谢! – DrDee 2010-01-13 23:39:09