我使用的侧栏使用if-else语句。无论我做什么,它总是显示else默认侧边栏。它们似乎已注册,因为它们显示在管理窗口小部件部分。我可以向它们添加小部件,但它们不会显示在页面中。仅默认侧栏。
这是侧边栏模板
<aside id="sidebar" role="complementary">
<?php if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar() ) : ?>
<div class="widget">
<h3>Search</h3>
<?php get_search_form(); ?>
</div>
<div class="widget">
<h3 class="wtitle">Categories</h3>
<ul>
<?php wp_list_categories(\'title_li=\'); ?>
</ul>
</div>
<div class="widget">
<h3 class="title">Archives</h3>
<ul>
<?php wp_get_archives( array( \'type\' => \'monthly\' ) ); ?>
</ul>
</div>
<div class="widget">
<h3 class="title">Meta</h3>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<?php wp_meta(); ?>
</ul>
</div>
<?php endif; ?>
</aside>
这就是所谓的
<?php get_header(); ?>
<div id="content" class="wrapper">
<?php get_sidebar(); ?>
<div id="main">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" class="post postbrdr" role="article">
<header class="posthead">
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<span class="meta">
<i>Published <time datetime="<?php echo the_time(\'Y-m-j\'); ?>"><?php echo the_time(get_option(\'date_format\')); ?></time> by <?php the_author_posts_link(); ?>.</i>
<i>Filed under <a href="#" rel="category"><?php the_category(\', \'); ?></a>. Total of <a href="<?php comments_link(); ?> "><?php comments_number( \'no comments\', \'1 comment\', \'% comments\' ); ?></a> in the discussion.<?php edit_post_link(\'Admin Edit\', \' \', \'.\'); ?></i>
</span>
</header>
<section class="post-content clearfix">
<?php the_content(); ?>
</section>
</article>
<?php endwhile; ?>
<div id="navbelow" class="clearfix">
<div class="nav-prev">
<?php previous_posts_link( "« Older Entries"); ?>
</div>
<div class="nav-next">
<?php next_posts_link( "Newer Entries »"); ?>
</div>
</div>
<?php else : ?>
<article id="post-not-found" class="post">
<header class="posthead">
<h2>Whoops! Looks like we can\'t find this post.</h2>
</header>
<section class="post-content">
<p>It seems like this post is missing somewhere. Double-check the URL or try navigating back via the website menu links.</p>
</section>
</article>
<?php endif; ?>
</div>
<!-- /#main -->
</div>
<!-- /#content -->
<br style="clear:both;">
<?php get_sidebar( \'responsive\' ); ?>
<?php get_footer(); ?>
这里是反应灵敏的。php
<aside id="sidebar-responsive" class="wrapper" role="complementary">
<?php if ( function_exists(\'dynamic_sidebar\') && dynamic_sidebar(2) ) : else : ?>
<div class="widget">
<h3 class="wtitle">Blog Categories</h3>
<ul>
<?php wp_list_categories(\'title_li=\'); ?>
</ul>
</div>
<div class="widget">
<h3 class="title">Post Archives</h3>
<ul>
<?php wp_get_archives( array( \'type\' => \'monthly\' ) ); ?>
</ul>
</div>
<?php endif; ?>
</aside> <!-- /#sidebar-responsive -->>
这是注册
* Setting up custom sidebars
*
*/
if(function_exists(\'register_sidebar\')) {
register_sidebar(array(
\'name\' => \'Main Sidebar\',
\'id\' => \'main\',
\'before_widget\' => \'<div class="widget">\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h3 class="wtitle">\',
\'after_title\' => \'</h3>\'
));
register_sidebar(array(
\'name\' => \'Responsive Sidebar\',
\'id\' => \'responsive\',
\'before_widget\' => \'<div class="widget">\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h3 class="wtitle">\',
\'after_title\' => \'</h3>\'
));
最合适的回答,由SO网友:Pieter Goosen 整理而成
你的侧边栏不会像你所说的那样工作。<?php get_sidebar(); ?>
调用template 侧栏。php,而<?php get_sidebar( \'responsive\' ); ?>
调用template 边栏响应。php
要调用模板中的两个侧栏,需要使用dynamic_sidebar()
根据示例调用它们
<?php if ( is_active_sidebar( \'responsive\' ) ) : ?>
<?php dynamic_sidebar( \'responsive\' ); ?>
<?php endif; ?>
EDIT
好的,这里有一些错误。
首先,我相信是你的侧边栏。php模板,您有以下代码
<?php if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar() ) : ?>
您不需要调用任何特定的侧栏。您需要指定要使用的侧栏,因此需要将该行更改为
<?php if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar( \'main\' ) ) : ?>
如果要使用id main的侧栏。
其次,您正在调用一个不存在的提要栏模板。如上所述,<?php get_sidebar( \'responsive\' ); ?>
调用侧栏响应。php,它不存在。你will 需要做出响应性的改变。php到侧栏响应。php正常工作。
第三,这条线也是错误的
<?php if ( function_exists(\'dynamic_sidebar\') && dynamic_sidebar(2) ) : else : ?>
您正在调用id为“2”的提要栏,根据您注册的内容,该提要栏不存在。我相信如果我看一下模板名称,这实际上应该是“响应性的”。您也可以使用与侧栏中相同的结构。php调用提要栏,如下所示
<?php if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar( \'responsive\' ) ) : ?>
希望这是你需要的。