微件未在主题定制器中显示

时间:2014-06-11 作者:AKR

我正在开发一个新主题,并在这个主题中使用了几个侧边栏。所有这些都很好,但小部件没有显示在主题定制器部分。在“外观->小部件”部分,所有小部件都可以正常工作,但在“外观->自定义”部分,则不能正常工作。我正在使用wordpress 3.9.1。

这就是我在函数中声明它们的方式。php

if(function_exists(\'register_sidebar\'))
 {

    register_sidebar ( array (
            \'name\' => \'Widget Area 1\',
            \'id\' => \'widget-1\',
            \'description\' => \'Widget Area 2.\',
            \'before_widget\' => \'<div id="%2$s" class="widget %2$s">\',
            \'after_widget\' => \'</div>\',
            \'before_title\' => \'<h3>\',
            \'after_title\' => \'</h3>\' ,
    ) );



    register_sidebar ( array (
            \'name\' => \'Widget Area 2\',
            \'id\' => \'widget-2\',
            \'description\' => \'Widget Area 2.\',
            \'before_widget\' => \'<div id="%2$s" class="widget %2$s">\',
            \'after_widget\' => \'</div>\',
            \'before_title\' => \'<h3>\',
            \'after_title\' => \'</h3>\' ,
    ) );


    register_sidebar ( array (
            \'name\' => \'Widget Area 3\',
            \'id\' => \'widget-3\',
            \'description\' => \'Widget Area 3.\',
            \'before_widget\' => \'<div id="%2$s" class="widget %2$s">\',
            \'after_widget\' => \'</div>\',
            \'before_title\' => \'<h3>\',
            \'after_title\' => \'</h3>\' ,
    ) );

    register_sidebar ( array (
            \'name\' => \'Widget Area 4\',
            \'id\' => \'widget-4\',
            \'description\' => \'Widget Area 4.\',
            \'before_widget\' => \'<div id="%2$s" class="widget %2$s">\',
            \'after_widget\' => \'</div>\',
            \'before_title\' => \'<h3>\',
            \'after_title\' => \'</h3>\' ,
    ) );

}
我就是这样称呼他们的。

<?php
    if (! function_exists ( \'dynamic_sidebar\' ) || ! dynamic_sidebar ( \'Widget Area 1\' )) :

endif;?>
当我有一个小部件区域时,它显示良好,但一旦我添加多个小部件,它就会从customizer中消失。

6 个回复
SO网友:Matt Cromwell

小部件确实会出现在自定义程序中,但仅当您位于使用它们的页面上时。

例如,我有一个存档页面的侧栏。当我在自定义程序和主页上时,该侧边栏不会出现。但是,如果在Customizer中导航到存档页面,它就会出现在小部件区域中。

SO网友:shadi

这是您问题的真正解决方案:您所要做的就是确保已将此函数添加到页脚和结束标记之前</body> :

<?php wp_footer();?>
还要确保<?php wp_head();?> 之前</head> 标签我希望这有助于。。。。。。

SO网友:manwill

我知道你很久以前问过这个问题,但我也遇到了同样的问题,最终解决了这个问题。在我的functions.php 文件,我已注销jquery(wp_deregister_script(\'jquery\')). 这显然会导致小部件无法在定制器中工作,即使我的页面仍在加载jquery(通过wp_enqueue_script).

为了解决这个问题(假设您和我有相同的问题),您需要通过调用wp_register_script(\'jquery\', (\'url_to_jquery\'), false, \'1.11.1\'[or whatever your jquery version is]).

SO网友:Ariful Islam Shaon

小部件将永远不会显示按其名称调用或按ID调用。

请查看侧栏。php或页脚。php中要显示小部件的地方是在函数中注册的边栏ID。php页面是否相同。

如果在函数中使用widget ID“something”。php和“其他东西”在你想显示你的小部件的地方出现了,而不是什么都没有解决!

示例:

如果在函数中注册小部件。php使用“页面边栏”,然后必须使用<?php dynamic_sidebar( \'page-sidebar\' ); ?> 在侧边栏或页脚页中。

SO网友:jose_nation

@PieterGoosen是正确的dynamic_sidebar ( \'Widget Area 1\' )) 您正在调用的是名称,而不是IDwidget-1.

尝试改用ID。

SO网友:flowerszhong

我遇到了这个问题,并解决了它。请打开浏览器至控制台,很明显存在javascript错误。修复了显示的错误和小部件

结束

相关推荐

Page full of widgets?

有没有可能创建一个只有很多小部件的页面?我看到的大多数WP站点的小部件都在侧边栏中,但我想要一个只有小部件而没有其他内容的页面。我当前使用的主题允许我向页面添加列或表,但我不知道(在任何主题中)是否可以向这些列或表单元格添加小部件?