我使用主题定制器让用户自定义他们的网站外观。
我注意到在“215”主题中有一个小部件面板。我在很多其他主题上也看到了这一点,并且面板的代码还没有添加到customizer.php
(据我所知)
关于我的主题,我在主页上有几个侧边栏。您可以通过Appearance > Widgets
菜单,但不显示自定义程序中的小部件面板。
我如何才能让它显示在定制器中,这样用户就不必不断切换以更改小部件?
我的侧栏注册代码:
function widgets_init_mysite() {
register_sidebar( array(
\'name\' => __( \'Main Sidebar\', \'mytheme\' ),
\'id\' => \'sidebar-1\',
\'before_widget\' => \'<div>\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h3 class="widget-title">\',
\'after_title\' => \'</h3>\',
) );
}
add_action( \'widgets_init\', \'widgets_init_mysite\' );
我使用以下命令将侧栏添加到页面中
dynamic_sidebar( \'sidebar-1\' )
它肯定会显示出来,因为我通过Appearance > Widgets
我可以在定制器中看到它们。
Note: 我确实发现了一件有趣的事。我注册了5个边栏,ID为sidebar-1
, sidebar-2
在Firefix中,我访问了主题定制器并检查元素。我发现Widgets面板存在,但display: none
. 更有趣的是ul
分导航,共有5个li
类的元素section-sidebar-widgets-sidebar-1
(所有侧栏的最后一个数字都已更改)。
我检查了我做的其他部分,课程总是从section-
, 然后是分区ID。我尝试将侧栏的面板更改为我的面板,如下所示:
$wp_customize->get_section( \'sidebar-widgets-sidebar-1\' )->panel = \'my-panel\';
但什么都没发生。这很奇怪,因为我知道几乎肯定知道侧边栏部分的名称,但更改它们的面板并没有任何作用。。。
SO网友:Jentan Bernardus
我知道你在说dynamic_sidebar
函数,但我没有看到您提到侧边栏文件(例如。sidebar.php
或sidebar-single.php
).
显示侧栏小部件基本上有3个步骤,它们在customizer中始终可见。如果你没有出现,你可能错过了什么。
1. The register part in functions.php
<人力资源>
$args = array(
\'name\' => __( \'Main Sidebar\', \'mytheme\' ),
\'id\' => \'sidebar-1\',
\'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h3 class="widget-title">\',
\'after_title\' => \'</h3>\'
);
register_sidebar( $args );
2. The function call in a sidebar file (eg. sidebar.php
or sidebar-single.php
)
<人力资源>
<?php
// Dynamic Sidebar
if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar(\'sidebar-1\') ) :
// Sidebar fallback content
get_sidebar();
endif;
// End Dynamic Sidebar Single posts
?>
3. Call the sidebar in the post/page template
<人力资源>
<?php get_sidebar(); ?>
或
<?php get_sidebar(\'single\'); ?>
对于
sidebar-single.php
我建议您重新检查代码,确保没有遗漏任何内容。祝你一切顺利!