আমি কীভাবে কাস্টম ট্যাক্সনোমি সহ কোনও কাস্টম পোস্ট প্রকারটি জিজ্ঞাসা করব?


26

কোনও কারণে আমি কাস্টম ট্যাক্সনমি ব্যবহার করে যে কোনও পোস্ট দখল করার লড়াইয়ের লড়াই খুঁজে পাচ্ছি ... কেউ কি আমার বোকামিটি উন্মোচন করতে পারে?

 $args = array(
    'post_type' => 'adverts',
    'advert_tag' => 'politics' // Doesn't seem to work.
  );

query_posts($args); 

while ( have_posts() ) : the_post();
 //Show Posts
endwhile;

শ্রমশক্তি ঘোষণা:

add_action( 'init', 'add_custom_taxonomy', 0 );
function add_custom_taxonomy() {
register_taxonomy('advert_tag', 'Adverts', array(
  'hierarchical' => true,
  'labels' => array(
    'name' => _x( 'Advert Tags', 'taxonomy general name' ),
    'singular_name' => _x( 'Advert Tag', 'taxonomy singular name' ),
    'search_items' =>  __( 'Search Advert Tags' ),
    'all_items' => __( 'All Advert Tags' ),
    'parent_item' => __( 'Parent Advert Tag' ),
    'parent_item_colon' => __( 'Parent Advert Tag:' ),
    'edit_item' => __( 'Edit Advert Tag' ),
    'update_item' => __( 'Update Advert Tag' ),
    'add_new_item' => __( 'Add New Advert Tag' ),
    'new_item_name' => __( 'New Advert Tag Name' ),
    'menu_name' => __( 'Advert Tags' ),
  ),
  'rewrite' => array(
    'slug' => 'advert-tags',
    'with_front' => false,
    'hierarchical' => true
  ),
));
  }

কাস্টম পোস্ট ধরণের ঘোষণা:

  add_action( 'init', 'create_post_type' );
  function create_post_type() {
    register_post_type( 'Adverts',
    array(
        'labels' => array(
            'name' => __( 'Adverts' ),
            'singular_name' => __( 'Advert'),
            'add_new' => __( 'Add New' ),
            'add_new_item' => __( 'Add a New Advert' ),
            'edit' => __( 'Edit' ),
            'edit_item' => __( 'Edit Advert' ),
            'new_item' => __( 'New Advert' ),
            'view' => __( 'View' ),
            'view_item' => __( 'View Advert' ),
            'search_items' => __( 'Search Adverts' ),
            'not_found' => __( 'No Adverts found' ),
            'not_found_in_trash' => __( 'No Adverts found in Trash' ),
            ),
        'supports' => array(
                'title',
                'thumbnail',
            ),
        'has_archive' => true,
        'menu_position' => 10,
        'public' => true,
        'rewrite' => array( 'slug' => 'adverts' ),
        'taxonomies' => array('advert_tag')
    )
);

}

উত্তর:


37

সবার প্রথমে কখনও ব্যবহার হয় নাquery_posts() , এ সম্পর্কে এখানে আরও পড়ুন: কখন আপনি ডাব্লুপি_কিউয়ারি বনাম কোয়েরি_পোস্টগুলি () বনাম get_posts () ব্যবহার করবেন?

WP_Queryআপনার যা প্রয়োজন তা পোস্ট করতে আপনাকে ব্যবহার করতে হবে। এর জন্য ডকুমেন্টেশন পড়ুন । আপনার ক্ষেত্রে ক্যোয়ারী এটির মতো হতে পারে:

$the_query = new WP_Query( array(
    'post_type' => 'Adverts',
    'tax_query' => array(
        array (
            'taxonomy' => 'advert_tag',
            'field' => 'slug',
            'terms' => 'politics',
        )
    ),
) );

while ( $the_query->have_posts() ) :
    $the_query->the_post();
    // Show Posts ...
endwhile;

/* Restore original Post Data 
 * NB: Because we are using new WP_Query we aren't stomping on the 
 * original $wp_query and it does not need to be reset.
*/
wp_reset_postdata();

2
সবেমাত্র লক্ষ্য করা গেছে যে এটি কাস্টম পোস্টের ধরণের 'অ্যাডভার্টস' সহ সমস্ত পোস্ট টানছে। তবে এই কাজটি মনে হচ্ছে: _ the_query = নতুন ডব্লিউপি_কিউয়ারি (অ্যারে ('পোস্ট_টাইপ' => 'অ্যাডভার্টস', 'বিজ্ঞাপন_ট্যাগ' => 'রাজনীতি'));
স্টিফেন

@ স্টিফেন {কর} সংস্করণ ৩.১ থেকে {ট্যাক্স_কোয়ারী of এবং _ ট্যাক্স_কোয়ারী favor প্রবর্তনের পক্ষে হ্রাস করা হয়েছিল। এটি এখনও কাজ করে তবে আমাদের অবহেলা ফাংশনগুলি ব্যবহার করা উচিত নয়। কর_ ক্যোয়ারী ট্যাক্সনোমি কোয়েরিগুলির একটি অ্যারে ব্যবহার করা হয়। আমি প্রায়শই জিজ্ঞাসিত কাস্টম পোস্ট ধরণের কাজ করছিলাম এবং এটি আমার জন্য ডব্লিউপি_কিউয়েরিতে "ট্যাক্স" ট্যাক্সোনমি স্লাগ আর্গুমেন্টের মতো একইভাবে কাজ করেছিল।
আমের শাহজাদ

16

আমি এই ক্যোয়ারীটি কাস্টম পোস্ট (FAQs পোস্ট) এর কাস্টম ট্যাক্সনমি (FAQ_category) সহ আনতে ব্যবহার করছি। যেহেতু WP_Query আর্গগুলিতে {ট্যাক্সোনমি} প্যারামিটারটি v.3.1 থেকে অবহেলা করা হয়েছিল এবং {ট্যাক্স_কোয়ারি} চালু করা হয়েছিল} নীচে কোডটি নিখুঁতভাবে কাজ করে।

$query = new WP_Query( array(
    'post_type' => 'faqs',          // name of post type.
    'tax_query' => array(
        array(
            'taxonomy' => 'faq_category',   // taxonomy name
            'field' => 'term_id',           // term_id, slug or name
            'terms' => 48,                  // term id, term slug or term name
        )
    )
) );

while ( $query->have_posts() ) : $query->the_post();
    // do stuff here....
endwhile;

/**
 * reset the orignal query
 * we should use this to reset wp_query
 */
wp_reset_query();

এটি সঠিক উত্তর - গৃহীত ট্যাক্স_ক্যারিটির জন্য অ্যারেগুলির একটি অ্যারে প্রয়োজন হওয়ায় গৃহীত উত্তরটি সংজ্ঞা দ্বারা ফিল্টার করবে না। এটি কাজ করার জন্য এই নেস্টেড পদ্ধতি অপরিহার্য। আপনার উত্তরের জন্য ধন্যবাদ)
টম ডায়ার

হ্যাঁ আপনি ঠিকই বলেছেন, টম ডায়ারকে স্বাগতম
আমের শাহজাদ 21

হ্যাঁ, এই একটি আমাকে ট্যাক্সনোমিজ টেমপ্লেটটি কাজ করতে সহায়তা করেছে। ধন্যবাদ!
ব্যবহারকারী 3135691

আরে @ আমেরশাহজাদ আমার ঠিক একই প্রশ্ন এবং আমি আপনার উত্তরটি ব্যবহার করেছি তবে পৃষ্ঠাটি কোনও পোস্ট টানছে না। আপনি কি আমাকে এখানে সাহায্য করতে পারেন? stackoverflow.com/questions/55783769/…
দেশি

-1

ওয়ার্ডপ্রেস তাদের ট্যাক্সনমি প্যারামিটার তথ্য পরিবর্তন করার কারণে এখন এই উত্তরটি আর বৈধ নয়। এইভাবে ব্যবহার করুন। এটা কাজ করবে। এটা আমার জন্য কাজ করে. "ট্যাক্স_কিউরি" "ট্যাক্স" এর সাথে প্রতিস্থাপন করে। আশা করি এটি কার্যকর হবে

$the_query = new WP_Query( array(
    'post_type' => 'Adverts',
    'tax' => array(
        array (
            'taxonomy' => 'advert_tag',
            'field' => 'slug',
            'terms' => 'politics',
        )
    ),
) );

while ( $the_query->have_posts() ) :
    $the_query->the_post();
    // Show Posts ...
endwhile;

/* Restore original Post Data 
 * NB: Because we are using new WP_Query we aren't stomping on the 
 * original $wp_query and it does not need to be reset.
*/
wp_reset_postdata();

এটি ঠিক বিপরীত - এটি taxছিল পুরানো উপায়, tax_queryবর্তমান (v3.1 +) উপায়।
ওয়েবএলাইন

ঠিক আছে আমি v4.5 কাজ করছি এবং এটি আমার সাথে কাজ করে
মামুনুজ্জামান

ডাব্লুপি পিছনে সামঞ্জস্যপূর্ণ হওয়ার জন্য বিখ্যাত। পুরানো উপায় এখনও কাজ করে, তবে এটি অবহেলা করা হয়েছে, সুতরাং এটি শেষ পর্যন্ত সরানো যেতে পারে এবং নতুন পদ্ধতিটি ব্যবহার করা আরও নিরাপদ।
ওয়েবএলাইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.