我在WordPress上遇到了一个奇怪的问题。我正在构建一个主题,主题定制由Customizer驱动。
所以,基本上是在函数方面。我正在添加php
add_theme_support( \'widget-customizer\' );
我正在注册侧边栏:
register_sidebar( array(
\'name\' => __( \'Test Sidebar\' ),
\'id\' => \'test-sidebar\',
));
然后在
index.php 我正在添加公共
get_footer(); 并且在
footer.php 我有:
<?php if ( is_active_sidebar( \'test-sidebar\' ) ): ?>
<div id="test-sidebar" class="sidebar">
<?php dynamic_sidebar( \'test-sidebar\' ); ?>
</div>
<?php endif; ?>
现在
first 奇怪的是,在预览窗口中,我可以在外观中看到通过管理页面添加的任何小部件,但在customizer小部件部分,我看不到任何区域,我收到了此消息
预览中当前没有呈现的小部件区域。在预览中导航到使用小部件区域的模板,以便在此处访问其小部件。
但是second 奇怪的是,如果在我的函数中。php I添加:
add_action( \'wp_footer\', function () {
?>
<?php if ( is_active_sidebar( \'test-sidebar\' ) ): ?>
<div id="test-sidebar" class="sidebar">
<?php dynamic_sidebar( \'test-sidebar\' ); ?>
</div>
<?php endif; ?>
<?php
} );
现在我可以在customizer中看到小部件区域。
有什么问题吗?
SO网友:prosti
对wp_footer()
挂钩很重要。如果删除wp_footer
从footer.php 您将从中获得消息的文件class-wp-customize-widgets.php
.
预览中当前没有呈现的小部件区域。在预览中导航到使用小部件区域的模板,以便在此处访问其小部件。
如果删除wp_footer
钩子整个customizer部分将在那里,但它不会像@WestonRuter指出的那样工作,因为customize-preview.js
不会在那里。
我只想提供一些提示:
您不需要添加add_theme_support( \'widget-customizer\' );
widget-customizer
插件现在是WordPress核心不可或缺的一部分,您已经准备好了支持。
另一件事,footer.php
可能不是让你的边栏组织明智的最明智的地方。您可以检查twentysixteen
WordPress主题,查看组织。