問題描述

被賦予分類學或術語,是否有可能拉分類所附加的任何/所有職位類型?

例如,知道內部分類 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。