从gensis_loop中删除gensis_404挂接

时间:2017-08-14 作者:Maarten Wolfsen

我正在使用genesis主题,我想定制一个404页面。为此,我希望删除默认的404钩子并实现我自己的钩子。在我的插件函数中。php我添加了我的操作:

add_action( \'genesis_loop\', \'genesis_customizations_404\' );
在函数中,我添加了删除:

function genesis_customizations_404() {
   echo \'test\';
   remove_action(\'genesis_loop\', \'genesis_404\');
}
但这是行不通的。我还试着移动remove_action() 我的职能。php文件,未成功。

1 个回复
最合适的回答,由SO网友:Maarten Wolfsen 整理而成

我找到了此问题的解决方案:

出于某种原因add_action()remove_action() 必须包含在另一个动作中,genesis_meta:

add_action( \'genesis_meta\', function () {
    if (is_404()) {
        remove_action( \'genesis_loop\', \'genesis_404\' );
        add_action( \'genesis_loop\', \'genesis_customizations_404\' );
    }
}, 11);

结束

相关推荐

Hooks are not executing

根据我对钩子的理解,您可以通过do\\u action(“hook\\u name”)创建一个钩子;然后向所述钩子中添加一些内容,并在希望它执行钩子的位置调用该方法,因此:public function hook_name(){ do_action(\'hook_name\'); } 有些地方你会做类似的事情:add_action(\'hook_name\', \'some_hook\'); 然后在主题中的一些地方,你称之为:hook_name();

从gensis_loop中删除gensis_404挂接 - 小码农CODE - 行之有效找到问题解决它

从gensis_loop中删除gensis_404挂接

时间:2017-08-14 作者:Maarten Wolfsen

我正在使用genesis主题,我想定制一个404页面。为此,我希望删除默认的404钩子并实现我自己的钩子。在我的插件函数中。php我添加了我的操作:

add_action( \'genesis_loop\', \'genesis_customizations_404\' );
在函数中,我添加了删除:

function genesis_customizations_404() {
   echo \'test\';
   remove_action(\'genesis_loop\', \'genesis_404\');
}
但这是行不通的。我还试着移动remove_action() 我的职能。php文件,未成功。

1 个回复
最合适的回答,由SO网友:Maarten Wolfsen 整理而成

我找到了此问题的解决方案:

出于某种原因add_action()remove_action() 必须包含在另一个动作中,genesis_meta:

add_action( \'genesis_meta\', function () {
    if (is_404()) {
        remove_action( \'genesis_loop\', \'genesis_404\' );
        add_action( \'genesis_loop\', \'genesis_customizations_404\' );
    }
}, 11);

相关推荐

Cannot override hooks.php

我为网络黑猩猩的“反应主题”构建了一个儿童主题。我想换一个钩子。所以我想我需要钩子。我的孩子主题中的php文件。所以我从父母那里复制了它。我制定了相同的层次结构(我想这是正确的方法)。wp-content/[my_child_theme]/core/includes/hooks.php 将文件复制到主题根目录没有帮助。我还试图重新创建这个关键钩子。我把代码放在子函数中。php文件,但它也不起作用,因为挂钩发生在主题内容之后(只是我的asumtion)。所以问题很简单:如何覆盖父主题的挂钩。php