মেটা মান দ্বারা পোস্টগুলি পান


27

আমি সেই সমস্ত পোস্টকে তালিকাবদ্ধ করতে চাই cp_annonceurযেখানে মান সহ একটি কী রয়েছে professionnel


8
দয়া করে সচেতন হন যে আপনি কোনও সমস্যা পোস্ট করার আগে সমস্যাটি নিয়ে গবেষণা করেছেন এবং এটি সমাধান করার চেষ্টা করেছেন expected আপনি যদি এখানে একেবারে নতুন না হয়ে থাকেন তবে আমি সম্ভবত উত্তরটি না দিয়ে প্রশ্নটি নীচে-ভোট দিয়ে এগিয়ে যেতে পারতাম। "ওয়েলকাম টু দ্য স্ট্যাক" এর চেতনায় এটি আপনার ফ্রি-মৌমাছি। ভবিষ্যতের প্রশ্নগুলির জন্য কীভাবে জিজ্ঞাসা করবেন দয়া করে একবার দেখুন ।
s_ha_dum

নীচে গ্রহণযোগ্য উত্তর না পাওয়ায় এটি আমাকে কিছুটা সময় হারাতে বসেছে। সুতরাং আমি আমার 2 সেন্ট এখানে ছেড়ে যাচ্ছি। তিনি কখনও উত্তর দেন নি, বা নীচে উত্তর গ্রহণও করেন নি। এখানে প্রায় কয়েক ডজন অনুরূপ প্রশ্ন থাকা অবস্থায় আপনি কেন এই প্রশ্নগুলি সরাবেন না?
মিরকোবাবিনি

উত্তর:


47

আপনি যা চাইছেন তা হ'ল ক meta_query

$args = array(
   'meta_query' => array(
       array(
           'key' => 'cp_annonceur',
           'value' => 'professionnel',
           'compare' => '=',
       )
   )
);
$query = new WP_Query($args);

আপনার প্রয়োজনীয় সমস্ত তথ্য কোডেক্সে রয়েছে


3
@ ব্যিগনার: এটি যদি সমস্যার সমাধান করে তবে দয়া করে এটি "স্বীকৃত" হিসাবে চিহ্নিত করুন। বাম দিকে ভোটের তীরগুলির নিকটে চেক চিহ্নটি সন্ধান করুন।
s_ha_dum

8

এটি করার দুটি উপায় রয়েছে:

  1. এতে প্রধান জিজ্ঞাসাটি বাধা দিন pre_get_posts:

    add_action( 'pre_get_posts', function( $query )
    {
        // only handle the main query
        if ( ! $query->is_main_query() )
            return;
    
        $query->set( 'meta_key',   'cp_annonceur' );
        $query->set( 'meta_value', 'professionnel' );
    } );
  2. একটি অতিরিক্ত ক্যোয়ারী যুক্ত করুন

    $second_loop = get_posts( array(
        'meta_key'   => 'cp_annonceur',
        'meta_value' => 'professionnel',
    ) );

2
Get_posts () এর সাথে সংক্ষিপ্ত পথটি জেনে ভাল লাগছে
অ্যান্ড্রু ওয়েলচ

8

আমি কাস্টম নির্বাচন ব্যবহার করেছি (আরও ভাল পারফরম্যান্স হতে পারে)

$posts = $wpdb->get_results("SELECT * FROM $wpdb->postmeta
WHERE meta_key = 'cp_annonceur' AND  meta_value = 'professionnel' LIMIT 1", ARRAY_A);

Https://tommcfarlin.com/get-post-id-by-meta-value/ থেকে অনুপ্রাণিত


1
এটিতে আরও ভাল পারফরম্যান্স থাকতে পারে তবে ডেটা অনুসন্ধানের জন্য ওয়ার্ডপ্রেস ফাংশন থাকার (এবং ক্যাশে) পুরো ধারণাটি তা ফেলে দেয়। এবং, এছাড়াও, যদি ডাব্লুপি টেবিলে কাঠামো পরিবর্তন করার সিদ্ধান্ত নেয়? :)
এরেনর পাজ

2

আমরা ওয়ার্ডপ্রেসের মেটা ক্যোয়ারির সাথে কাঙ্ক্ষিত ফলাফল পেতে পারি:

// the meta_key 'diplay_on_homepage' with the meta_value 'true'
$cc_args = array(
    'posts_per_page'   => -1,
    'post_type'        => 'post',
    'meta_key'         => 'cp_annonceur',
    'meta_value'       => 'professionnel'
);
$cc_query = new WP_Query( $cc_args );

মেটা ক্যোয়ারী সম্পর্কিত আরও বিস্তারিত গাইডের জন্য এই ব্লগটি অনুসরণ করুন : http://www.codecanal.com/get-posts-meta-values/


আমি জানতে পারি কেন এই post_per_pageমানটি -1?
অভয় গাওয়াদে

1
@ অভয়গাওয়াদ আপনি সেই পরামিতিটি ব্যবহার করে সর্বাধিক সংখ্যক ফলাফল সীমাবদ্ধ করতে পারেন, -১ এর অর্থ সীমা নেই।
কুশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.