wordpress:通过functions.php覆盖公共静态函数

wordpress:通过functions.php覆盖公共静态函数,wordpress,wordpress-theming,Wordpress,Wordpress Theming,我试过这篇文章:不工作 我有一个插件(Wordpress\u seo)。它有一个文件夹“frontend”,class-breadcrumbs.php文件,其中包含WPSEO_breadcrumbs类和一个公共静态函数breadcrumb。我需要在functions.php中覆盖它 我是wordpress的新手,所以我可能错过了一些解决方案。这是我目前的代码: add_filter('filter_breadcrumb', 'mytheme_breadcrumb'); function myt

我试过这篇文章:不工作

我有一个插件(Wordpress\u seo)。它有一个文件夹“frontend”,class-breadcrumbs.php文件,其中包含WPSEO_breadcrumbs类和一个公共静态函数breadcrumb。我需要在functions.php中覆盖它

我是wordpress的新手,所以我可能错过了一些解决方案。这是我目前的代码:

add_filter('filter_breadcrumb', 'mytheme_breadcrumb');

function mytheme_breadcrumb($before = '', $after = '', $display = true){
    if ( ! ( self::$instance instanceof self ) ) {
            self::$instance = new self();
        }
        // Remember the last used before/after for use in case the object goes __toString().
        self::$before = $before;
        self::$after  = $after;

        $output = $before . '<!--1-->'.self::$instance->output.'<!--2-->' . $after;

        if ( $display === true ) {
            echo $output;

            return true;
        }
        else {
            return $output;
        }
}
add_filter('filter_breadcrumb'、'myteme_breadcrumb');
函数mytheme_breadcrumb($before='',$after='',$display=true){
if(!(self::$instance instanceof self)){
self::$instance=new self();
}
//记住上次使用的before/after,以便在对象变为_toString()时使用。
self::$before=$before;
self::$after=$after;
$output=$before.'''.self::$instance->output.'.$after;
如果($display==true){
echo$输出;
返回true;
}
否则{
返回$output;
}
}
我复制了整个函数并添加了“”以进行测试,但它不起作用。有人能告诉我我做错了什么吗


谢谢

您是否尝试设置执行优先级?为此,在
add_filter
函数中添加第三个参数1000(这会将自定义函数优先级设置为在第1000个位置执行,可能是最后一个),并将第四个参数3设置为第四个参数(告诉WordPress在自定义函数中钩住三个参数)。另外,尝试关闭自定义函数并检查自定义函数是否真的执行了。尝试了列出的所有操作。什么也没有发生。请将
过滤器
函数包装到另一个函数中(随意命名),然后使用代码
添加操作('init','YOUR\u function\u selected\u name')调用此函数。
。如果这不起作用,我不知道还有什么问题。@MerianosNikos我不认为最后的评论会有什么帮助,如果你能解释一下will light我和其他人,那么尝试这个的原因是什么?