我正在尝试使用is_page(postid)
对于WordPress网站functions.php
if (is_page(1) || is_page(2) || is_page(3) ) {
echo "<script>console.log(\'insideIf\');</script>";
wp_enqueue_style( \'custom_css\', get_template_directory_child() . path);
}
因此,考虑到1、2和3是页面的ID,ID为2和3的页面在控制台中记录消息并加载css文件,而
is_page(1)
没有响应。
我试着把它改成is_page(\'1\')
或is_single()
或is_single(1)
. 没有被检测到的页面是一个博客页面,我甚至尝试了标题is_page(\'blog\')
.
顺便说一句,我反复核对了身份证,所以我肯定没有使用错误的身份证。
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成
如果您尝试检查的页面设置为帖子页面,则is_page
“条件”不会为真。
在这种情况下,您应该检查is_home
.
为什么?所有这些条件标记都基于全局wp_query
. 对于设置为帖子页面(博客主页)的页面,全局查询不包含单数页面-它包含博客帖子列表。
SO网友:cjbj
有条件的is_page
映射到is_page
的方法wp_query
班正如您在源代码中所看到的,已经测试了一些东西。
首先,如果方法不应用于传递的对象(例如,因为它不是wp_query
实例),它返回false。
然后queried object 已检索。这将获取页面/帖子的数据,如果查询是针对存档的,则获取该特定存档的数据。请注意,此方法不处理您调用的页面IDis_page
具有它检索被查询的对象,而不考虑这一点。
接下来,它根据您传递的页面ID(或页面名称或帖子标题)测试查询的对象。这就是你的问题所在。查询的对象是博客存档,因此在此条件测试的上下文中没有页面ID。因此is_page
返回false。
最有可能is_home
这样就可以了,因为这是对主博客存档的测试。否则,您可能需要一组更复杂的测试来定位此页面。