我正在尝试在WordPress(版本3.3.2)上设计一个主题,但是我在侧边栏在某些页面上显示一组不同的小部件时遇到了一些问题。
我已经尝试了几个在线教程,特别是http://www.rvoodoo.com/projects/wordpress/wordpress-tip-different-sidebars-on-different-pages/,但不幸的是,当我移动到另一个页面时,侧边栏没有变化
我在我的 functions.php 上注册了两个侧边栏,如下图所示,其中一个我认为是主要的,另一个是自定义侧边栏,我还为这些侧边栏添加了不同的小部件。
<?php register_sidebar( //register sidebar
array(
'name' => 'Right-side',
'before_widget' => '<div class="rightwidget">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widgettitle">',
'after_title' => '</h3>',
));
register_sidebar( //register second sidebar
array(
'name' => 'Second-right',
'before_widget' => '<div class="rightwidget">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widgettitle">',
'after_title' => '</h3>',
));
?>
之后,我创建了文件 sidebar.php 和 sidebar-second.php 以便能够调用它们。
的sidebar.php
<div id="sidebar">
<?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Right-side')) : ?>
<h3 class="widget-title">No widget added</h3>
<p> Please add some widgets</p>
<?php endif; ?>
</div><!--ends sidebar-->
边栏-second.php
<div id="sidebar">
<?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Second-right')) : ?>
<h3 class="widget-title">No widget added</h3>
<p> Please add some widgets</p>
<?php endif; ?>
</div><!--ends sidebar-->
然后我添加了以下条件
替换我的<?php get_sidebar() ; ?>
语句
<?php if( is_page('225') ) : ?>
<?php dynamic_sidebar('second'); ?>
<?php else : ?>
<?php get_sidebar() ; ?>
<?php endif ; ?>
但是,只有添加到 sidebar.php 的小部件才会显示在每个页面上。关于如何改变这一点的任何帮助,或指出我可能做错的事情。感谢。
答案 0 :(得分:1)
我看起来你正在使用<?php dynamic_sidebar('second'); ?>
,而你应该使用<?php get-sidebar('second'); ?>
get_sidebar('foo')所做的是在主题的根目录中查找名为“sidebar-foo.php”的文件并将其包含在内。另一方面,dynamic_sidebar('bar')查找注册时使用的侧边栏:
<?php register_sidebar( array( 'name' => 'bar' ... ) ) ?>
希望这有帮助!
答案 1 :(得分:0)
为什么不使用Custom Sidebar Plugin?
它非常易于使用,不需要任何编码
答案 2 :(得分:0)
你有两个侧边栏。当你想在特定页面上使用sidebar-second文件时,而不是调用
<?php get_sidebar('second') ; ?>
尝试
<?php get_sidebar('sidebar-second.php') ; ?>
这应该可以解决问题