我正在制作无限滚动页面。我创建了一个页面模板,其中加载了某些类别的帖子。单页和单一类别的一切都很好。
但是这个页面模板有三个页面,每个页面都应该加载特定类别的文章。我正在使用is_page()
if elseif块来确定访问者所在的页面。但is_page()
未执行。
这是循环:
$cat = '';
if(is_page(703)){
$cat = 4;
} elseif (is_page(706)) {
$cat = 21;
}
$args = array(
'cat' => $cat,
'paged' => $paged
);
$infinite_news_query = new WP_Query($args);
if ( $infinite_news_query -> have_posts() ) : while ( $infinite_news_query -> have_posts() ) : $infinite_news_query -> the_post();
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
<?php wp_reset_postdata();
?>
此代码显示所有帖子,无论其类别如何,$cat
在循环内都为空。
我做错了什么?
谢谢!
答案 0 :(得分:1)
更改以下内容:
$cat = '';
if(is_page(703)){
$cat = 4;
} elseif (is_page(706)) {
$cat = 21;
}
为:
if(is_page('703')){
$cat = 4;
} else { if(is_page('706')) {
$cat = 21;
}
同时删除$cat = '';
答案 1 :(得分:0)
这样看,首先将变量$cat
分别设置为空值为false,零或0。
然后设置一个只有两个状态的循环,省略一个默认值。 那么,当您的页面ID被更改时会发生什么?
您将显示所有帖子。
换句话说,我在代码中看不到任何不好的内容。我建议您使用is_page('slug')
而不是id
。