我正在为我的网站使用免费的“响应式”Wordpress 主题,并且是第一次使用子主题。
我需要在小部件下面添加一个 div 标签 <h3>
标签,但标签所在的边栏函数存储在父函数中,我无法覆盖我的子主题中的函数。
这是我必须尝试删除 parent 侧边栏功能,并重新添加我自己的侧边栏功能,但它并没有删除侧边栏:
添加侧边栏的原始函数看起来与我的函数相同 child_responsive_widgets_init()
, 但它叫做 responsive_widgets_init()
如果有帮助的话。
<?php
function child_responsive_widgets_init() {
register_sidebar( array(
'name' => __( 'Main Sidebar', 'responsive' ),
'description' => __( 'Area 1 - sidebar.php - Displays on Default, Blog, Blog Excerpt page templates', 'responsive' ),
'id' => 'main-sidebar',
'before_title' => '<div class="widget-title"><h3>',
'after_title' => '</h3><em> </em></div>',
'before_widget' => '<div id="%1$s" class="widget-wrapper %2$s">',
'after_widget' => '</div>'
) );
}
function remove_parent_widgets() {
remove_action( 'widgets_init', 'responsive_widgets_init' );
}
add_action('init','remove_parent_widgets');
add_action( 'widgets_init', 'parent_unregister_sidebars' );
function parent_unregister_sidebars() {
unregister_sidebar( 'main-sidebar' );
}
add_action( 'widgets_init', 'child_responsive_widgets_init' );
?>
最佳答案
我们必须wait until functions.php
file is loaded , 那么我们就可以拦截父类的钩子(Hook)了。
将此添加到您 child 的 functions.php
:
add_action( 'after_setup_theme', 'remove_parent_hook_so_22995302' );
function remove_parent_hook_so_22995302()
{
remove_action( 'widgets_init', 'responsive_widgets_init' );
}
关于php - 在 Wordpress 中覆盖父主题功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22995302/