当前帖子属于哪种自定义帖子类型?

时间:2014-11-25 作者:dericcain

我查阅了所有的法典,搜索了网络,但我找不到一种方法来完成我正在尝试的事情。我所需要做的就是显示帖子所属的CPT。例如,我有两种不同的职位类型,课程和资源,我需要一种方法来输出特定职位所属的其中一种。有人能帮忙吗?

2 个回复
最合适的回答,由SO网友:Pat J 整理而成

get_post_type() 应该照你说的做。

SO网友:Pieter Goosen

您还可以直接访问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秒内完成查询。

结束

相关推荐