WordPress子主题覆盖父主题包含

时间:2013-10-30 15:46:04

标签: php wordpress wordpress-theming

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

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

  

致命错误:无法重新声明hickory_homepage_load_widget()   (先前在   C:\ WAMP \ WWW \ greenpeaceNewBlog \可湿性粉剂内容\主题\ GP-博客\ INC \部件\ homepage_widget.php:8)   在   C:\ WAMP \ WWW \ greenpeaceNewBlog \可湿性粉剂内容\主题\山核桃\ INC \部件\ 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。在我的孩子的function.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");

请帮助:)

干杯

1 个答案:

答案 0 :(得分: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
}