Wordpress自定义主题:Widget区域无法在Customizer中配置

时间:2018-06-11 16:50:57

标签: php wordpress wordpress-theming

我目前正在开发一个自定义wordpress主题供我自己的网站使用。我主要关心的是包含小部件区域。我设法包含一个小部件区域,以便可以从 Appearance>配置它。窗口小部件,结果也会显示在自定义程序预览和实时网站上。 唯一的问题是我无法在自定义程序中配置小部件。当我在自定义程序中单击 Widgets 时,它只显示以下消息:

您的主题有一个小部件区域,但此特定页面不显示它。您可以使用自定义程序导航到您网站上的其他页面,以查看和编辑这些页面上显示的小部件。

好吧,因为外观>小部件配置的小部件实际上正在显示,我的网站似乎有一个小部件区域。但我想有些东西缺少定制器知道的。

以下是我从许多类似教程中注册侧边栏/窗口小部件区域的代码:

<?php
function tgf_customize_register( $wp_customize ) {
    //All our sections, settings, and controls will be added here
}
add_action( 'customize_register', 'tgf_customize_register' );
function tgf_widgets_init() {
    register_sidebar(array(
        'name'          => 'Sidebar Widget',
        'id'            => 'main_sidebar_widget',
        'description'   => 'Widget Area',
        'before_widget' => '<div class=”widget”>',
        'after_widget'  => '</div>',
        'before_title'  => '<h2>',
        'after_title'   => '</h2>',
    ) );
}
add_action( 'widgets_init', 'tgf_widgets_init' );
?>

这是显示侧栏的代码:

<?php if ( is_active_sidebar( 'main_sidebar_widget' ) ) : ?>
    <?php dynamic_sidebar( 'main_sidebar_widget' ); ?>
<?php endif; ?>

我也试过用这段代码展示它,但是小部件根本没有显示在网站上,即使我从 Appearance&gt;配置它也是如此。窗口小部件

<?php if ( is_active_sidebar( 'main_sidebar_widget' ) ) : ?>
    <?php get_sidebar( 'main_sidebar_widget' ); ?>
<?php endif; ?>

为什么我无法在自定义程序中配置此小部件?

此问题WordPress theme creation : There are no widget areas on the page shown在自定义程序中提到相同的错误消息,但未提供适用于我的特定问题的解决方案。

由于我通过研究这个问题找不到任何东西,我想我错过了一些基本的东西。这很可能是因为我是wordpress主题开发和PHP的新手。提前谢谢!

1 个答案:

答案 0 :(得分:2)

发现自己没有教程告诉我的内容:

我必须在页面开头添加<?php wp_head() ?>,在页面末尾添加<?php wp_footer() ?>

Wordpress似乎需要这些钩子才能正常运行。