为什么条件句在页面上可能不起作用?

时间:2013-06-18 作者:user1729506

<?php

if (is_single()) {
    echo \'1\';

} elseif ( is_page() ) {
    echo \'2\';

} else {
   echo \'3\';
}

?>
我把这个片段放在索引的顶部。php,这是我用来管理博客文章提要布局的工具。然后我创建了一个新页面,将模板设置为默认值,并将其留空。它显示了我所有的帖子。但上面的片段重复了3。它使用索引。php作为模板,但它是一个页面。为什么它没有回声2?

UPDATE

因为博客提要页面是在设置>阅读中设置的,所以我必须使用条件is_home();. 为所有的困惑道歉。

2 个回复
SO网友:Rarst

条件标记主要来自并依赖于主查询。

  • is_page() 函数调用$wp_query->is_page() 检查的方法$wp_query->is_page 属性(在加载过程中设置)和其他内容(如果您要求检查特定页面)$wp_query, 例如,它被擦除和覆盖query_posts() 呼叫

SO网友:GhostToast

继续@Rarst answer,您需要运行wp_reset_query()wp_reset_postdata() 在循环结束时(feed)。这将设置全局变量$wp_query 回到它应该是什么样子,你的条件应该按预期的那样工作。

结束

相关推荐