is_page()未执行

时间:2013-10-18 11:48:39

标签: php wordpress-theming wordpress

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

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

我做错了什么?

谢谢!

2 个答案:

答案 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