您还可以直接访问WP_Post
循环内的对象。当前职位post_type
可显示为
echo $post->post_type;
EDIT
在对这个答案发表了一些建设性的意见(谢谢@ialocin)之后,我觉得扩展我的答案并进一步阐明这个问题以供将来参考确实是有益的
您需要首先查看get_post_type()
1121 /**
1122 * Retrieve the post type of the current post or of a given post.
1123 *
1124 * @since 2.1.0
1125 *
1126 * @param int|WP_Post $post Optional. Post ID or post object. Default is global $post.
1127 * @return string|bool Post type on success, false on failure.
1128 */
1129 function get_post_type( $post = null ) {
1130 if ( $post = get_post( $post ) )
1131 return $post->post_type;
1132
1133 return false;
1134 }
正如人们从
get_post_type()
, 它只是
$post->post_type
. 使用这两种方法中的任何一种都绝对不会影响时间或DB调用。正如@PatJ在一篇评论中所说的那样,一打半中有六个。
然而,使用get_post_type()
通过向循环外的任何帖子传递任何帖子ID,可以从中获取帖子类型。在这种情况下,它将使用get_post
从给定的帖子中检索帖子类型。这也是非常有效的,并且不是资源密集型的。
这是测试结果来说明我的观点。我的帖子ID是159
echo get_post_type(159);
给出的测试结果为
1在0.00098秒内完成查询。