मेटा मान द्वारा पोस्ट प्राप्त करें


27

मैं उन सभी पोस्टों को सूचीबद्ध करना चाहूंगा cp_annonceurजिनमें मूल्य की एक कुंजी है professionnel


8
कृपया ध्यान रखें कि आपसे इस समस्या पर शोध करने की अपेक्षा की जाती है और प्रश्न पोस्ट करने से पहले इसे हल करने का प्रयास किया जाता है। अगर आप यहां बिल्कुल नए नहीं होते, तो मैं शायद इस सवाल का जवाब देने के बजाय सवाल-जवाब को दरकिनार कर देता। "स्टैक में आपका स्वागत है" की भावना में यह आपका फ्री-मधुमक्खी है। कृपया भविष्य के प्रश्न कैसे पूछें , इस पर एक नज़र डालें ।
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
@Beginner: यदि यह समस्या हल हो गई तो कृपया इसे "स्वीकृत" चिह्नित करें। बाईं ओर के वोट तीर के पास चेक मार्क को देखें।
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
इसमें बेहतर प्रदर्शन हो सकता है, लेकिन यह खोज (और कैश) डेटा को खोजने के लिए Wordpress फ़ंक्शन करने के पूरे विचार को दूर फेंक देता है। और, भी, अगर WP तालिका संरचना को बदलने का फैसला करता है तो क्या होगा? :)
एरेनोर पाज़

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
@AbhayGawade आप उस पैरामीटर का उपयोग करके अधिकतम संख्या को सीमित कर सकते हैं, -1 का अर्थ है कोई सीमा नहीं।
कुश
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.