我正在制作无限滚动页面。我创建了一个页面模板,其中加载了某些类别的帖子。使用单个页面和单个类别,一切正常。
但是我有三个页面包含此页面模板,每个页面都应加载特定类别的文章。我正在使用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
为空。
我做错了什么?
谢谢!
更改以下内容:
$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 = '';
像这样看,首先您将变量$cat
设置为空值,分别设置为 false 、零或 0。
然后设置一个循环,只有两个状态,省略默认值。那么,当您的页面ID被更改时会发生什么?
您会看到所有帖子。
换句话说,我在代码中没有看到任何不好的东西。我宁愿建议您使用is_page('slug')
而不是id
。