我正在为新的213主题开发一个儿童主题,并试图在我的内容旁边添加一个侧栏(小部件区域)。我只想在single
职位。
我所做的:编辑单曲。php(并将其添加到我的子主题文件夹)如下所示:
get_header(); ?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<?php /* The loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( \'content\', get_post_format() ); ?>
<?php get_sidebar(\'sidebar-3\'); ?> <!-- DOESN\'T WORK -->
<!-- /END of sidebar-aside-content -->
<?php twentythirteen_post_nav(); ?>
<?php comments_template(); ?>
<?php endwhile; ?>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
并在函数中注册了侧栏。php,例如:
function mobiel_informatie_widgets_init() {
register_sidebar( array(
\'name\' => __( \'Sidebar next to content\', \'twentythirteen\' ),
\'id\' => \'sidebar-3\',
\'description\' => __( \'Wordt naast een single post weergegeven.\', \'twentythirteen\' ),
\'before_widget\' => \'<aside id="%1$s" class="widget %2$s">\',
\'after_widget\' => \'</aside>\',
\'before_title\' => \'<h3 class="widget-title">\',
\'after_title\' => \'</h3>\',
) );
}
add_action( \'widgets_init\', \'mobiel_informatie_widgets_init\' );
问题是,我可以在外观>>小部件中看到这个小部件区域,但无论我添加什么,模板中都不会显示任何内容。我猜我是做错了
name
参考,但
docs 在我看来,这一点还不太清楚。
编辑1:
以下是一些图片来说明我的问题:
我单曲的代码。php
WP中的小部件工作正常
输出——不输出任何内容。在/END
议论
我能想到的唯一一件事是,为什么这行不通,是因为与父主题(二十三)冲突。它有两个边栏,用函数编写。php,如下所示:
/**
* Registers two widget areas.
*
* @since Twenty Thirteen 1.0
*
* @return void
*/
function twentythirteen_widgets_init() {
register_sidebar( array(
\'name\' => __( \'Main Widget Area\', \'twentythirteen\' ),
\'id\' => \'sidebar-1\',
\'description\' => __( \'Appears in the footer section of the site.\', \'twentythirteen\' ),
\'before_widget\' => \'<aside id="%1$s" class="widget %2$s">\',
\'after_widget\' => \'</aside>\',
\'before_title\' => \'<h3 class="widget-title">\',
\'after_title\' => \'</h3>\',
) );
register_sidebar( array(
\'name\' => __( \'Secondary Widget Area\', \'twentythirteen\' ),
\'id\' => \'sidebar-2\',
\'description\' => __( \'Appears on posts and pages in the sidebar.\', \'twentythirteen\' ),
\'before_widget\' => \'<aside id="%1$s" class="widget %2$s">\',
\'after_widget\' => \'</aside>\',
\'before_title\' => \'<h3 class="widget-title">\',
\'after_title\' => \'</h3>\',
) );
}
add_action( \'widgets_init\', \'twentythirteen_widgets_init\' );
最合适的回答,由SO网友:cybmeta 整理而成
除了wordpresser应答之外,您还可以调用以获取\\u提要栏(“sidebar-aside-content”);仅在要显示侧栏的模板文件中。例如,如果您包括
<?php get_sidebar(\'sidebar-aside-content\'); ?>
在“theme\\u folder/single.php”文件中,侧边栏将仅在单个帖子中显示。
例如在函数中。php:
//Register your sidebar
add_action( \'widgets_init\', \'my_widgets_init\' );
function my_widgets_init() {
register_sidebar( array(
\'name\' => __( \'The title of my sidebar\', \'curioso\' ),
\'id\' => \'sidebar-mysidebar\',
\'description\' => \'An optional widget area for my sidebar\',
\'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
\'after_widget\' => "</div>",
\'before_title\' => \'<h3>\',
\'after_title\' => \'</h3>\',
) );
}
现在您必须创建一个名为sidebar mysidebar的文件。php并将其放在主题文件夹中。此文件将加载小部件。例如:
<?php if ( is_active_sidebar( \'sidebar-mysidebar\' ) ) : ?>
<div class="mysidebar">
<?php dynamic_sidebar( \'sidebar-mysidebar\' ); ?>
</div>
<?php endif; ?>
现在,在您想要显示“mysidebar”的主题文件中:
<?php get_sidebar(\'mysidebar\'); ?>