问题描述

被赋予分类学或术语,是否有可能拉分类所附加的任何/所有职位类型?

例如,知道内部分类 categorycategory 分类中的术语是否具有反向工程功能,categorypost 的分类学?

不需要的信息

我正在使用特定需要知道帖子类型的分类术语中的一些自定义字段,但是如果 URL 中的帖子类型参数不在于任何原因我遇到麻烦。

最佳解决方案

如果我们窥视全球 $wp_taxonomies 变量,我们会看到相关的对象类型。

可能会有更好的方法来做这个甚至是核心的功能,但你可以尝试以下几点:

function wpse_172645_get_post_types_by_taxonomy( $tax = 'category' )
{
    global $wp_taxonomies;
    return ( isset( $wp_taxonomies[$tax] ) ) ? $wp_taxonomies[$tax]->object_type : array();
}

那么对于默认设置,你可以得到:

$out = wpse_172645_get_post_types_by_taxonomy( 'category' );
print_r( $out );

输出:

Array
(
    [0] => post
)

次佳解决方案

您可以使用 get_object_taxonomies 做相反的操作。将其与 get_post_types 组合以迭代邮件类型以检查每个注册的分类标准。

EDIT-这是一个例子,它产生与 @ birgire 的函数相同的输出,而不使用脏的全局变量。

function wpse_172645_get_post_types_by_taxonomy( $tax = 'category' ){
    $out = array();
    $post_types = get_post_types();
    foreach( $post_types as $post_type ){
        $taxonomies = get_object_taxonomies( $post_type );
        if( in_array( $tax, $taxonomies ) ){
            $out[] = $post_type;
        }
    }
    return $out;
}

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。