Wordpress中is_single()与is_singular()的区别

简单的认为is_sigular()相当于is_single()||is_page()||is_attachment()没有什么大问题。
也就是说,有is_single()||is_page()

<?php if ( is_single()||is_page() ) { ?>

的地方,都可以替换成is_singular()

<?php if ( is_singular() ) { ?>

但是其实上述这种理解不是太准确。来比较一下is_single()is_sigular()的文档。
is_single()是可以加参数的。参数可以是post_id,post_slug,post_title。2.5之后还可以同时对这几个参数加以判断。
当不带参数时,返回的是当前显示的是不是一个单独的post(而且类型不是page和attachment)。
而带了参数,返回的就是当前显示的是不是编号/标题/标志为“XXX”的那篇post。
在数据库里,is_single不仅要查询ID是否存在,还要保证type是“post”而不是“page”,“attachment”甚至“revision”。

is_sigular()则简单的多。就是当前显示的是不是一条单独的post所形成的页面。
在数据库里,is_sigular()也只是判断ID是否存在即可。

已有3条评论

  1. 谢谢~尝试研究自己修改代码~
    正好需要~ 然后Google 到了~
    留个痕迹表示感谢……

  2. 刚开始研究wordpres,谢谢分享!

  3. 哈哈!明白了!!!哈哈!!多谢博主提供的解释啊!!
    is_sigular() ,判断ID是否存在···哈哈哈哈!!激动啊。

你好,新朋友。留言前请先填写昵称邮箱