Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 替换Custormizr主题的父操作_Php_Wordpress_Wordpress Theming - Fatal编程技术网

Php 替换Custormizr主题的父操作

Php 替换Custormizr主题的父操作,php,wordpress,wordpress-theming,Php,Wordpress,Wordpress Theming,我创造了我自己的孩子主题。一切都很好,除了我不能注销hoook $这是classTC\u footer\u main,以下代码位于\u构造中 add_action ( '__colophon' , array( $this , 'tc_colophon_center_block' ), 20 ); 我尝试了几个删除操作,但没有成功。我正在尝试更改/删除页脚: remove_action('u_colophon','tc_colophon'u center_block',55) 或

我创造了我自己的孩子主题。一切都很好,除了我不能注销hoook

$这是class
TC\u footer\u main
,以下代码位于
\u构造中

add_action ( '__colophon'       , array( $this , 'tc_colophon_center_block' ), 20 );
我尝试了几个删除操作,但没有成功。我正在尝试更改/删除页脚:

remove_action('u_colophon','tc_colophon'u center_block',55)

remove_action('u_冒号',数组('TC_footer_main','TC_冒号_center_block'),55)

我也试过了

remove_操作(“u冒号”,TC_页脚_主::$instance->TC_冒号_中心_块(),55)


但这引发了一个错误,因为在运行我的
functions.php
文件时,
TC\u footer\u main
未加载。

为了便于您在function.php中添加以下代码。它将在设置主题挂钩后被调用

// replace parent function
function child_theme_function () {
    // your code goes here
 }

function my_theme_setup () {
    remove_action( '__colophon', 'tc_colophon_center_block', 1000 );
    add_action( '__colophon', 'child_theme_function', 1000 );
}
add_action( 'after_setup_theme', 'my_theme_setup' );
您还可以尝试从子类重写父类,如下所述:

我正在尝试更改/删除页脚:

我认为修改
tc\u colophon\u center\u block()
方法的输出比必须修改的要复杂得多

只需使用
tc\u credits\u显示
过滤器:

add_filter( 'tc_credits_display', function( $html )
{
    // Modify output to your needs!
    return $html;
} );
根据您的需要修改该块

要完全删除输出(如果允许),只需使用:

add_filter( 'tc_credits_display', '__return_null', PHP_INT_MAX );
您可以进一步访问以下筛选器:

  • tc\u版权链接
  • tc\u信用链接
  • tc\u wp\u供电
选择


就这样

您离得不太远……您可能遇到的一个问题是,在父主题添加钩子之前,您正在尝试删除钩子。该类可以在稍后阶段初始化

我不太确定你的钩子什么时候跑,但希望是在初始化之后

 add_action('init', 'remove_parent_hook');

 function remove_parent_hook(){
      remove_action( '__colophon' , array('TC_footer_main','tc_colophon_center_block') , 20); // needs to be the same priority
 }
显然,现在您可以为新函数添加一个操作

添加了匿名函数的可能性很小,在尝试删除挂钩函数时,
&$this
的重要性常常被忽略。这是一种痛苦,因为wp会将一个随机字符串指定为函数的键名&函数名,每次都不同,因此无法猜测。但是我们可以在键中搜索函数名,这样类似的东西就可以工作了

    function remove_anon_hk($hook, $function, $priority=10 ){

        global $wp_filter;

        $hooks= $wp_filter[$hook][$priority];

        if(empty ($hooks))
            return;

        foreach($hooks as $hk=>$data):
            if(stripos($hk, $function) !== false ){
                unset($wp_filter[$hook][$priority][$hk]);
            }
        endforeach;
    }


    add_action('init', function(){
        remove_anon_hk('__colophon', 'tc_colophon_center_block');
    });

你的解决方案只让我走了一半。我可以输出我的页脚,但不能删除旧的页脚。那是因为它在一个类中
TC\u footer\u main
要删除您可以使用的旧页眉:有关更多参考信息,请访问:ps:我不是附属公司,但看起来专业版使您能够通过自定义设置直接修改页眉。谢谢,我可以自己更改页眉,但我希望获得这样做的最佳实践。而不是在父主题中硬编码