我正在编写一个Wordpress插件,只要触发'the_author'过滤器事件就会执行字符串处理。但是,一些小部件也包含'the_author'事件,随后我的插件被触发,这不应该发生。所以我试图检测我的插件是否从某些小部件调用,但到目前为止无济于事。我想忽略的一个小部件称为“最近评论”。我试过了:
function wrap_author($the_author) {
if(!is_active_widget('recent_comments')) {
$the_author = '<span class="CA_author">' . $the_author . '</span>';
return $the_author;
}
}
可能是我没有使用小部件的正确名称,我已经搜索了很多内容,以找到最近评论窗口小部件的正确内部名称,但到目前为止找不到它。或许我不应该使用is_active_widget函数。
答案 0 :(得分:1)
如果您只是希望自己触发“主要”内容区域,请使用in_the_loop()
功能检查您是否在内容循环中。这可能会让你99%的方式,但你几乎肯定会找到一些会引起挫折的边缘情况;)
if (in_the_loop()) {
// do stuff
}
这样可以防止代码在边栏中执行。