WordPress编程新手(来自更为传统的环境),并试图了解其一些“独特”特性。
我们的网站上有一个目录页,此代码驻留在functions.php
, 如果条件为true,则调整结果。
if( $query->is_post_type_archive( \'directory\' ) ){
...//do stuff
}
我想知道如何获取
is_post_type_archive
这就是“目录”当我对值使用测试时。。。
var_dumb($query->is_post_type_archive());
。。我明白了
bool(true)
这很有道理。但是“directory”值是如何存储/传递/访问的?
SO网友:Jacob Peattie
首先,你应该做的第一件事是阅读developer docs. 这个问题涉及很多话题,不可能在一个答案中全部解释。
无论如何directory
将是一个Custom Post Type 由主题或插件注册。
当职位类型为registered 开发人员可以告诉WordPress其存档的URL路径应该是什么。
WordPress将创建rewrite rule 因此,当用户访问该URL时,WordPress会收到一个参数,告诉它用户正在请求该帖子类型的存档。
当用户访问该URL时,WordPress将查询该帖子类型存档需要显示的帖子。它会用一个WP_Query()
对象作为查询的一部分,WordPress将设置is_post_type_archive
该对象的属性true
, 以及post_type
属性到directory
.
开发人员可以使用pre_get_posts
filter. 由于WordPress可以对任何给定的请求运行多个post查询,因此此筛选器上使用的任何函数都将收到当前WP_Query
对象作为参数。然后,开发人员可以通过检查$query->is_post_type_archive( \'directory\' )
是true
对于当前查询。