0

我正在创建一个 WordPress 子主题,需要覆盖某些小部件模板。我正在尝试使用此方法来覆盖父主题调用:The Right Way to Override Theme Functions

但是,我目前收到此错误:

致命错误:无法在 C:\wamp\www\greenpeaceNewBlog 中重新声明 hickory_homepage_load_widget()(之前在 C:\wamp\www\greenpeaceNewBlog\wp-content\themes\gp-blog\inc\widgets\homepage_widget.php:8 中声明) \wp-content\themes\hickory\inc\widgets\homepage_widget.php 在第 10 行

父主题 functions.php 像这样调用模板:

include("inc/widgets/homepage_widget.php");

homepage_widget.php 文件包含以下内容:

add_action( 'widgets_init', 'hickory_homepage_load_widget' );

function hickory_homepage_load_widget() {
    register_widget( 'hickory_homepage_widget' );
}

我有一个子主题重复小部件目录(stylesheet_directory/inc/widgets/..)和一个子主题functions.php。在我的子functions.php中,我写了这个:

// Remove the default Thematic blogtitle function
function remove_hickory_widgets() {
    remove_action('widgets_init', 'hickory_homepage_load_widget');
}

// Call 'remove_thematic_actions' (above) during WP initialization
add_action('init','remove_hickory_widgets');

include("inc/widgets/homepage_widget.php");

请帮忙 :)

干杯

4

1 回答 1

0

尝试这个

add_action( 'init', 'remove_hickory_widgets' );

function remove_hickory_widgets() {
    remove_action('widgets_init', 'hickory_homepage_load_widget' );
    add_action( 'init', 'custom_widgets' );
}

function custom_widgets(){
    // your widget code here
}
于 2014-01-17T12:51:36.297 回答