全球$post_type
通常来自主查询的公共查询变量$wp_query
, 但是get_post_type()
是当前$post
对象,在循环中。
因此,对于二次回路,这可能有所不同。
全球$post_type
可能不会始终设置为的默认帖子类型WP_Query
是post
岗位类型。
从…起WP::register_globals()
我们可以看到post_type
查询变量可全局访问:
// Extract updated query vars back into global namespace.
foreach ( (array) $wp_query->query_vars as $key => $value ) {
$GLOBALS[ $key ] = $value;
}
正如我在最近的回答中所说
here.
一般来说,我会使用WordPress API调用,而不是使用直接全局调用,因为前者通常用于处理各种情况,包括默认情况,并在需要时进行更新。
直接与全球公司合作会增加超越它们的风险。
如果您的目标是设置一些CSS选择器,通常可以只使用为<body>
标签,带有body_class()
核心功能。还要考虑post_class()
核心函数,因为它已经包含post类型类信息。