代码之家  ›  专栏  ›  技术社区  ›  DrDee

如何确定是否从WordPress小部件调用WordPress插件

  •  1
  • DrDee  · 技术社区  · 16 年前

    我正在写一个wordpress插件,每当“author”过滤器事件被触发时,它就进行字符串处理。但是,一些小部件也包含“作者”事件,随后我的插件被触发,这不应该发生。因此,我试图检测我的插件是否是从某些小部件调用的,但到目前为止没有任何效果。我想忽略的一个小部件叫做“最近的评论”。我已经尝试过:

    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 回复  |  直到 9 年前
        1
  •  1
  •   Gipetto    16 年前

    如果您只想在“主要”内容区域启动,请使用 in_the_loop() 函数来检查是否在内容循环中。这可能会让你99%的路,但你几乎肯定会找到一些边缘案例,会导致沮丧;)

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

    这将防止代码在侧边栏中执行。