পোস্টের ধরণটি সংযুক্ত করে একটি টেকনোমি পান


13

একটি শ্রমশাসন বা পদ দেওয়া হওয়ায়, কি কোনও / সমস্ত পোস্টের ধরণটি সংযুক্ত করে টানা সম্ভব?

উদাহরণস্বরূপ, ট্যাক্সনোমিতে বিল্ট ইন জেনে categoryবা বিভাগে একটি শব্দ দেওয়া হচ্ছে category, ইঞ্জিনিয়ারকে বিপরীত করার কোনও ফাংশন আছে categoryযা একটি ট্যাক্সোনমি post?

অপ্রয়োজনীয় তথ্য

আমি ট্যাক্সনোমির শর্তে কিছু কাস্টম ক্ষেত্রের সাথে কাজ করছি যার জন্য পোস্টের ধরণটি বিশেষত জানা দরকার, তবে ইউআরএল-এ পোস্ট টাইপ পরামিতি যদি কোনও কারণেই না আসে সেজন্য আমি সমস্যায় পড়েছি।

উত্তর:


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প্রত্যেকের জন্য নিবন্ধীকৃত কর বিভাগগুলি পরীক্ষা করার জন্য পোস্ট ধরণের মাধ্যমে পুনরাবৃত্তি করার সাথে এটি একত্রিত করুন ।

সম্পাদনা - নোংরা গ্লোবাল ব্যবহার না করে এখানে একটি উদাহরণ যা @ বার্জায়ারের ফাংশন হিসাবে একই আউটপুট উত্পাদন করে।

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()ট্যাক্সোনমিগুলি অ্যাক্সেস করার ফাংশন রয়েছে (মূলত সংস্করণ ২.৩.০ থেকে)) ওয়ার্ডপ্রেস ৪.7.০ থেকে রিটার্নের ধরণটি WP_Taxonomyসম্পত্তি সহ একটি বিষয়$object_type

$taxonomy = get_taxonomy( 'category' );
print_r( $taxonomy->object_type );
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.