is_page() is not executed


is_page() is not executed

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

但是我有三个页面包含此页面模板,每个页面都应加载特定类别的文章。我正在使用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