不同的侧边栏不变

时间:2012-05-27 作者:kia4567

我不明白为什么我的侧边栏没有换成其他页面上的第二个。我已经告诉页面,如果你不在这个页面上,请显示侧边栏2。因此,主页和博客页面有一个侧栏1,其余页面有侧栏2。但它不起作用。

我的主主题布局上的代码如下所示:

<?php if(is_page(\'blog\')) { ?>
    <?php include(TEMPLATEPATH.\'/sidebar2.php\'); ?>
<?php } else { ?>
    <?php include(TEMPLATEPATH.\'/sidebar.php\'); ?>
<?php } ?>  

<?php get_footer(); ?>
因此,如果我理解正确,如果页面是blog,则显示侧栏1,如果不显示侧栏2。我有sidebar.phpsidebar-2.php 页面中有小部件,所以我知道它什么时候起作用。

但我看不出它有什么作用。函数中是否有一些内容。php文件我忘记放进去了?

2 个回复
最合适的回答,由SO网友:Chris_O 整理而成

你的主要问题是is_page() 如果conditional包含在循环内部或之后,则它不会返回true。

你的另一个问题不一定与手头的问题相关,那就是你在侧边栏中的方式。WordPress附带了一个方便的小功能,名为get_sidebar(). 如果有多个边栏,可以向函数传递一个参数,让它知道需要什么边栏。

您需要命名侧边栏sidebar-{sidebar_name}.php. 因此,如果您想包含提要栏1,可以将文件命名为sidebar-sidebar1.php 包括它很简单get_sidebar( \'sidebar1\' )

解决您的is_page() 问题你可以打电话wp_reset_query() 在循环之后或将条件返回布尔值指定给循环之前的变量,然后在包含提要栏时使用它。

//Somewhere before the loop
$page_var = is_page( \'blog\' ) ? true : false;

//loop stuff

if ( $page_var ) {
     get_sidebar( \'sidebar1\' );
} else { get_sidebar( \'sidebar2\' ); }

SO网友:James

您是否在“首页显示”阅读设置的“帖子页面”选项下选择了博客页面?如果是这样,则需要将条件from is\\u页面(“blog”)更新为is\\u home()。

结束

相关推荐

Adding content to sidebars

我正在设计一个三栏布局,根据主栏中的帖子/页面,所有三栏都有不同的内容。我如何才能改变和更新侧边栏内容,并使用以下内容在模板中显示它<?php the_content() ?> ? 由于侧边栏内容与帖子相关,我需要一种方法来引用帖子的右侧侧边栏内容。提前感谢诚挚的nav