पोस्ट प्रकार प्राप्त करें एक वर्गीकरण को संलग्न किया गया है


13

टैक्सोनॉमी या टर्म दिए जाने के बाद, किसी भी / सभी प्रकार के टैक्सोनॉमी के साथ संलग्न करने के लिए संभव है?

उदाहरण के लिए, बिल्ट इन टैक्सोनॉमी को जानना categoryया टैक्सोनॉमी में एक शब्द दिया जाना category, क्या रिवर्स इंजीनियर के लिए एक फ़ंक्शन categoryहै जो टैक्सोनॉमी है post?

अनपनी जानकारी

मैं टैक्सोनॉमी शब्दों में कुछ कस्टम फ़ील्ड्स के साथ काम कर रहा हूं, जिन्हें विशेष रूप से पोस्ट प्रकार को जानने की आवश्यकता है, लेकिन अगर मैं जिस भी कारण से परेशानी में हूं, उसके लिए URL में पोस्ट टाइप पैरामीटर नहीं है।

जवाबों:


12

यदि हम वैश्विक $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
)

8

आप के साथ रिवर्स कर सकते हैं get_object_taxonomiesget_post_typesप्रत्येक प्रकार के लिए पंजीकृत करदाताओं की जांच करने के लिए पोस्ट प्रकारों पर पुनरावृति के साथ इसे मिलाएं ।

EDIT - यहां एक उदाहरण है जो गंदे ग्लोबल्स का उपयोग किए बिना @ बिर्गिअर के फ़ंक्शन के समान आउटपुट का उत्पादन करता है।

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;
}

3

$wp_taxonomiesवैश्विक चर का सीधे उपयोग करने की आवश्यकता नहीं है क्योंकि वर्डप्रेस के पास इसमें get_taxonomy()टैक्सोनॉमी का उपयोग करने का कार्य है (संस्करण 2.3.0 के बाद से कोर में)। चूंकि वर्डप्रेस 4.7.0 रिटर्न प्रकार WP_Taxonomyसंपत्ति के साथ एक वस्तु है$object_type

$taxonomy = get_taxonomy( 'category' );
print_r( $taxonomy->object_type );
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.