0

我正在制作无限滚动页面。我创建了一个页面模板,其中加载了特定类别的帖子。单个页面和单个类别一切正常。

但是我有这个页面模板的三个页面,每个页面都应该加载来自特定类别的文章。我正在使用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在循环内为空。

我究竟做错了什么?

谢谢!

4

2 回答 2

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 = '';

于 2013-10-18T13:22:18.860 回答
0

像这样看,首先你将变量$cat设置为空值,分别设置为 false、零或 0。

然后设置一个只有两种状态的循环,省略默认值。那么,当您的页面 ID 更改时会发生什么?

您会显示所有帖子。

换句话说,我没有看到代码中有任何不好的地方。我宁愿推荐你使用而is_page('slug')不是 with id

于 2013-10-18T11:57:12.283 回答