首页 > 解决方案 > 为什么 wp 动作钩子不适用于基于特定 url 字符串删除短代码的函数

问题描述

我试图了解为什么在我的子主题的functions.php 文件中,我能够根据特定字符串是否在url 中成功抑制短代码。

但是,我不能通过使用函数和动作钩子以“正确的方式”做同样的事情。

示例:因此,如果在我的 functions.php 中,我能够获得预期的行为,我有......

snip

if( strpos($_SERVER['REQUEST_URI'], "/?s=") !== false )
    remove_shortcode('uwr-button');

snip

但是,如果我在我的 functions.php 文件中执行以下操作,我将不成功:

snip

function remove_shortcode_exec_on_query(){

    // condition to disable uwr-button shortcode
    if( strpos($_SERVER['REQUEST_URI'], "/?s=") !== false )
            remove_shortcode('uwr-button');

}
add_action('wp','remove_shortcode_exec_on_query'); 

snip

如果我注释掉顶部片段并取消注释底部片段,您可以看到错误的行为,如下链接所示: https ://s1.temporary-access.com/~allacros/devel/?s=tahiti

标签: phpwordpresshook

解决方案


推荐阅读