抄本是要使用的,应该是你的第一站。上有一个完整的页面conditional tags
要排除存档页,请使用is_archive()
.
EDIT 1
Mark有一个有效点。我不太了解你,也不太了解我自己:-)
您的问题是使用||
和&&
操作员
这是你的密码
if ( !is_home() || !is_page(\'archive\') )
好的。如果您不在主页上,也不在存档页上,则两者都返回true,表示同意,
true || true
因此,您的代码按其应该的方式执行。例如,现在我们在主页上,因此检查我们是否在主页上返回false,出现以下情况
false || true
与您的想法不同,您的代码应该执行。这不是代码中的缺陷,而是
||
操作员工作。只有一个true触发并执行您的代码。当您处于存档页面时,也会发生同样的情况。
这个&&
操作员这样处理您的代码
if ( !is_home() && !is_page(\'archive\') )
如果不在主页上,也不在存档页上,则两者都返回true,代码将执行。
现在,当您在主页或归档页中的任何一个上时,一个返回true,另一个返回false。你的代码还会执行吗。简单的答案是NO
对于&&
操作员触发,所有条件must return true. 只有一个false会使代码无法执行。
我希望这有意义
**编辑2**
根据您的评论
顺便说一下!(is_home() || is_page(\'archive\'))
与相同!is_home() || !is_page(\'archive\')
?
不,不是。你需要了解(!
) **operator 做!
任何变量或条件之前的含义与之后的含义相反。所以!is_page()
在简单的英语中,意思是“如果我们不在一页上”,其中is_page()
翻译为“如果我们在一页上”
所以,回顾一下我在编辑1中解释的内容,让我们看看逻辑。我会缩写is_page( \'archive\' )
只是is_page()
!(is_home() || is_page(\'archive\'))
在主页和归档页以外的任何其他页面上,
!is_home()
返回true,并且
is_page()
返回false,执行代码
true || false
在主页上,
!is_home
返回false,因为我们位于主页上。
is_page()
返回false,因为我们不在同一页上。
false || false
因此您的代码不会执行。现在进入存档页面。
is_page()
将返回true,而
!is_home()
也将返回true
true || true
所以你还是吃饱了。您的代码仍在存档页上执行。
我想把这个留给你。不要重新发明轮子。逻辑已经存在。去检查我的答案中提供的链接。你should 正在使用&&
而不是||
, 不管你怎么看,句号