Php WordPress页脚小部件未显示在“我的孩子”主题中

Php WordPress页脚小部件未显示在“我的孩子”主题中,php,wordpress,woocommerce,widget,storefront,Php,Wordpress,Woocommerce,Widget,Storefront,我正在用Woocommerce for WordPress建立一个电子商务商店,使用店面主题。我创建了一个子主题来删除默认的边栏,但是这也有一个副作用,即页脚小部件区域中的小部件不会显示。如果我切换回父主题,它们就可以正常工作 这是子主题的functions.php: <?php function mb_remove_sidebar() { return false; } add_filter( 'is_active_sidebar', 'mb_remove_sidebar',

我正在用Woocommerce for WordPress建立一个电子商务商店,使用店面主题。我创建了一个子主题来删除默认的边栏,但是这也有一个副作用,即页脚小部件区域中的小部件不会显示。如果我切换回父主题,它们就可以正常工作

这是子主题的functions.php:

<?php
function mb_remove_sidebar() {
    return false;
}

add_filter( 'is_active_sidebar', 'mb_remove_sidebar', 10, 2 );

您的代码正在删除所有边栏。记下要删除的侧栏ID,然后注销特定侧栏

add_action( 'widgets_init', function() {
    unregister_sidebar( 'your-sidebar-id' );
}, 11 );

有关更多信息,请参见

我认为最好的方法是在子对象中创建自己的
sidebar.php
文件,以覆盖父对象,并在此处而不是在函数中编辑代码

下面是默认文件,您只需删除if语句中的感叹号即可

<?php
/**
 * The sidebar containing the main widget area.
 *
 * @package storefront
 */
if ( ! is_active_sidebar( 'sidebar-1' ) ) {
    return;
}
?>

<div id="secondary" class="widget-area" role="complementary">
    <?php dynamic_sidebar( 'sidebar-1' ); ?>
</div><!-- #secondary -->


侧边栏包含小部件。因此,如果删除侧边栏,则不显示小部件是合乎逻辑的!有几个小部件区域。边栏是一个,但在页脚中也有小部件区域。删除侧边栏不应删除页脚上的小部件。唉,如果是这样,并且它们正在消失,那么认为页脚小部件或对它们的调用在侧边栏中是合乎逻辑的。我可能建议您在侧栏中查找与页脚小部件相关的任何其他函数/操作,并将所述函数/操作移动到包含的footer.php代码中。@JeppeBech关键是每个“小部件区域”都称为侧栏。您的代码将删除所有这些内容。因此,如果您只想删除特定的侧边栏,那么您必须获取该侧边栏的ID并只删除该侧边栏。