我必须在可重写函数中放置挂钩的位置?

时间:2019-06-29 作者:wpdev

为了更好的子主题,我必须在可重写函数中放置挂钩吗?内部if语句还是外部?

if( !function_exists( ovveridable_function() ) {
    function overridable_function() {
        echo \'Test\';
    }
    add_action( \'init\', \'overridable_function\' );
}

OR

if( !function_exists( ovveridable_function() ) {
    function overridable_function() {
        echo \'Test\';
    }
}
add_action( \'init\', \'overridable_function\' );

2 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

也不钩住的函数不需要是可插入的,因为子主题已经可以解除钩住并替换为remove_action().

要使其可插入的主要函数是模板中使用的函数,即模板标记,而这些函数通常不会挂钩,因此add_action() 不相关。即使如此,如果它们在多个模板中使用,您可能只需要使它们可插入,因为否则子主题可能只会替换模板文件。

SO网友:Deepak Gupta

如果需要,请尝试使用外部

function overridable_function() {
    echo \'Test\';
}
add_action( \'init\', \'overridable_function\' );

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c