WordPress child theme override a parent theme include

旧巷老猫 提交于 2019-12-20 06:12:40

问题


I'm creating a WordPress child theme and need to overwrite certain widget templates. I'm trying to use this method to override the parent theme call: The Right Way to Override Theme Functions.

However, I currently get this error:

Fatal error: Cannot redeclare hickory_homepage_load_widget() (previously declared in C:\wamp\www\greenpeaceNewBlog\wp-content\themes\gp-blog\inc\widgets\homepage_widget.php:8) in C:\wamp\www\greenpeaceNewBlog\wp-content\themes\hickory\inc\widgets\homepage_widget.php on line 10

The parent theme functions.php calls the templates like this:

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

The homepage_widget.php file contains this:

add_action( 'widgets_init', 'hickory_homepage_load_widget' );

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

I have a child theme duplicate widget directory (stylesheet_directory/inc/widgets/..) and a child theme functions.php. In my child functions.php, I have written this:

// 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");

Please help :)

Cheers


回答1:


Try this

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
}


来源:https://stackoverflow.com/questions/19687503/wordpress-child-theme-override-a-parent-theme-include

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!