0

我正在尝试在 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.phpsidebar-second.php以便能够调用它们。

边栏.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的小部件才会显示在每个页面上。关于我如何改变这一点的任何帮助,或关于我可能做错了什么的指示。谢谢。

4

3 回答 3

1

我看起来你正在使用<?php dynamic_sidebar('second'); ?>你应该使用的地方<?php get-sidebar('second'); ?>

get_sidebar('foo') 所做的是在主题的根目录中查找名为“sidebar-foo.php”的文件并将其包含在内。另一方面,dynamic_sidebar('bar') 查找注册的侧边栏:

<?php register_sidebar( array( 'name' => 'bar' ... ) ) ?>

希望这可以帮助!

于 2012-06-15T19:30:58.057 回答
1

为什么不使用自定义侧边栏插件

它真的很容易使用,不需要任何编码

于 2012-06-15T21:25:22.827 回答
0

你有两个侧边栏。当您想在特定页面上使用侧边栏第二个文件时,而不是调用

<?php get_sidebar('second') ; ?> 

尝试

<?php get_sidebar('sidebar-second.php') ; ?>

这应该可以解决问题

于 2015-06-27T09:57:41.327 回答