आप Wordpress 3.1 में meta_query के साथ क्रम का उपयोग कैसे करते हैं?


21

क्या यह मेरी पसंद के मेटा डेटा द्वारा मेटा_क्वरी के साथ फ़िल्टर करने के बाद, कस्टम पोस्ट की मेरी सूची को ऑर्डर करना संभव है?

उदाहरण के लिए, मेरे पास एक कस्टम पोस्ट प्रकार है जिसे वेबिनार कहा जाता है। मैं सभी आगामी वेबिनारों को सूचीबद्ध करने की कोशिश कर रहा हूं, और उन्हें कस्टम मेटा फ़ील्ड द्वारा webinar_startDate नामक आदेश दिया है।

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

<?php $my_array =  array(
    'meta_query' => array(
            array(
                'key' => 'webinar_startDate',
                'value' => date("Y-m-d H:i:s"),
                'compare' => '>=',
                'type' => 'DATETIME'
            )
    ),
    'orderby' => 'meta_value',
    'post_type' => 'webinars',
    'posts_per_page' => 20,
    'order' => 'ASC'
); ?>

मुझे संदेह है कि 3.0 से 3.1 के बदलाव के कारण, ऑर्डरबाई => मेटा_वल्यू का उपयोग संभवतः अलग है, लेकिन मुझे यह समझाने के लिए वर्डप्रेस प्रलेखन के भीतर एक उत्तर नहीं मिल सकता है।

क्या कोई मदद कर सकता है? अग्रिम में धन्यवाद।

जवाबों:


17

नया meta_queryसरणी चुनता है जो क्वेरी रिटर्न पोस्ट करता है। तो हां, आप इसके भीतर 'कुंजी' का संकेत दे रहे हैं meta_query, लेकिन आप अभी भी पुरानी पद्धति का उपयोग कर सकते हैं

'orderby' => 'meta_value', 
'meta_key' => '_events_meta',

meta_query, के अलावा इन पंक्तियों से संकेत मिलता है के रूप में कैसे करने के लिए सॉर्ट परिणामी क्वेरी। तो हां, आप एक ही मेटा_की दो बार संकेत कर सकते हैं।


9
यह जवाब पूरी तरह से सही नहीं है। यदि आप एक मौजूदा meta_query के बाहर एक आर्डर और एक meta_key जोड़ते हैं, तो परिणाम वास्तव में प्रदान की गई कुंजी के अनुसार छाँटेगा - लेकिन फिर इसमें कोई भी पोस्ट शामिल होगी जहाँ वह मेटा कुंजी सेट है, भले ही मान मापदंड को पूरा न करता हो मेटा_क्वेरी में (कम से कम, इस तरह यह मेरे लिए परीक्षण में काम आया)। ऐसा करने का एक बेहतर तरीका यह हो सकता है कि आप एक सरणी को क्रमबद्ध
MathSmath

1

मैं अपने कस्टम पोस्ट के लिए निम्नलिखित कोड का उपयोग कर रहा हूं events, सभी पोस्ट को लूप में प्राप्त करने के लिए।

$evtLoop = new WP_Query(array('post_type' => 'events',
                              'posts_per_page' => 10,
                              'orderby' => 'meta_value', 
                              'meta_key' => '_events_meta',
                              'order'=>'DESC'));

मुझे लगता है कि आप उसी तरह से अपने कोड का उपयोग कर रहे हैं। मुझे लगता है कि आप meta_keyसॉर्ट करने के लिए मेटा-फ़ील्ड के नाम के साथ याद कर रहे हैं । यदि आप जोड़ते हैं तो शायद यह मदद करता है

'meta_key' => 'webinar_startDate',

बाहरी सरणी के लिए?


मुझे अब दिख गया। मैं Wordpress प्रलेखन द्वारा भ्रमित किया गया था जिसमें कहा गया था कि 'meta_key' और 'meta_value' मूल्यह्रास कर दिए गए हैं। मैंने मान लिया कि इसका मतलब मैं उनका उपयोग नहीं कर सकता, लेकिन मुझे लगता है कि यह भ्रामक था। धन्यवाद!
जेफ के।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.