<?php if( is_home() || is_page(10)): ?>
<div class="text-center col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12">
<?php elseif(is_single() && !is_page(10)): ?>
<div class="text-center col-xl-9 col-lg-9 col-md-9 col-xs-12">
<?php endif; ?>
我要做的就是更改分配给此<div>
的课程,如果您在一个帖子上,这可以正常工作,但在查看联系页面时我无法控制它它似乎被认为是一个单一的帖子。这很好,但我想从这个效果中排除一个页面。
我试过is_page('联系'),is_page('联系人')和is_page(10) 在任何情况下,它们似乎都没有返回true,我甚至删除了所有其他条件,如果它是联系页面,只是打印了一些内容,但它仍然没有返回true并且没有效果。
我已经做了很多搜索,我所能找到的就是说我正确使用它...我不知道为什么它不会返回真实?
我是否错误地使用php if语句,到目前为止它是'oops,it works'场景? 页面的网址以?page_id = 10结尾,页面标题为“联系”
我可以创建一个页面模板,但它似乎比我在这里需要的更多,联系页面非常简单,我真正需要做的就是使用bootstrap适当地将四行文本居中。适用于网站的所有其他页面,如果您在主页上或查看单个帖子,则会相应更改<div>
。
根据要求,完整的index.php代码如下所示。感谢任何愿意看这个的人。这没什么大不了的,我比较新,所以请原谅我的过度评论 - 我还在学习。 完整的index.php:https://pastebin.com/nnG0ny99
答案 0 :(得分:2)
您可以尝试使用:
global $post;
<?php if( is_home() || $post->ID == 10): ?>
<div class="text-center col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12">
<?php elseif(is_singular() && $post->ID != 10): ?>
<div class="text-center col-xl-9 col-lg-9 col-md-9 col-xs-12">
<?php endif; ?>
这样您就可以获得实际的帖子ID,而不是页面ID。
修改:尝试将is_single()
更改为is_singular()
,作为答案中建议的saN。
答案 1 :(得分:1)
确保您没有在循环中使用is_page()。
来自https://developer.wordpress.org/reference/functions/is_page/ “由于在循环期间某些全局变量被覆盖,is_page()将不起作用。为了在循环之后调用它,你必须首先调用wp_reset_query()。”
答案 2 :(得分:1)
is_single()
适用于“任何帖子类型,但附件和页面除外”(https://developer.wordpress.org/reference/functions/is_single/)因此,对于页面,它总是会被评估为false。
改为使用is_singular()
。