WP_Query के साथ पृष्ठ टेम्पलेट क्वेरी


14

मैं केवल पृष्ठ के साथ एक निश्चित पृष्ठ टेम्पलेट के साथ WP_Queryया एक फ़ंक्शन के साथ क्वेरी करना चाहूंगा जो पोस्ट ऑब्जेक्ट को लौटाएगा, लेकिन मुझे आधिकारिक कोडेक्स पर इसके बारे में कोई जानकारी नहीं मिल सकती है।

जवाबों:


23

इसे आज़माएं ... टेम्पलेट का नाम 'my_template.php' है,

$query = new WP_Query(
    array(
        'post_type' => 'page',
        'meta_key' => '_wp_page_template',
        'meta_value' => 'my_template.php'
    )
);
//Down goes the loop...

काम पाने के लिए आप get_posts का उपयोग कर सकते हैं , या क्वेरी पोस्ट को संशोधित कर सकते हैं । ये दोनों फ़ंक्शन WP_Query के समान पैरामीटर का उपयोग करते हैं ।


20

गलत: वर्डप्रेस 3 के रूप में आपको कुछ करने की आवश्यकता है:

$args = array(
    'post_type'  => 'page', 
    'meta_query' => array( 
        array(
            'key'   => '_wp_page_template', 
            'value' => 'my_template.php'
        )
    )
);

धन्यवाद!! इस पृष्ठ को बहुत तेज़ी से स्किम्ड किया, स्वीकृत उत्तर का उपयोग किया। यह करता है। किसी और के लिए, सरणी के अंदर सरणी के अंदर के सरणी पर ध्यान दें ...
जेरेमी कार्लसन

3
यहाँ केवल अंतर है post_type। अन्यथा आपको meta_queryएकल कस्टम कुंजी / मान युग्म के लिए सरणी की आवश्यकता नहीं है ।
रुटविक गांगुर्दे

बेशक मेटा क्वेरी की जरूरत है। सिवाय इसके कि इसे साथ "इनलाइन" हो सकता है meta_keyऔर meta_valueया एक सादे सरणी, जो कई शर्तों के साथ शामिल हो सकते हैं।
मैक्सिमे कूलिया

1

पृष्ठ टेम्पलेट कुंजी "_wp_page_template" के साथ मेटा मान के रूप में संग्रहीत किया जाता है।

तो आपको बस एक मेटा क्वेरी पैरामीटर में उस कुंजी का उपयोग करने की आवश्यकता है। उदाहरण के लिए

देखें http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query#Query_based_on_Custom_Field_and_Sorted_by_Value

और http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters


0

यदि किसी का प्रयास गलत तरीके से शून्य पोस्ट करता है, तो शायद टेम्पलेट का नाम गलत है। मैंने php फ़ाइल नाम और मेरे टेम्पलेट नाम की कोशिश की और उन्होंने काम नहीं किया। फिर मैंने तय किया कि टेम्प्लेट सेलेक्ट बॉक्स का निरीक्षण करें जहाँ हम पेज एडिटर पर टेम्प्लेट चुनते हैं। मुझे मिला:

<option value="templates-map/component-tutorial-1.php" 
 selected="selected">Tutorial -1</option>

मैंने इस्तेमाल किया templates-map/component-tutorial-1.phpऔर यह काम कर गया।


0

यदि आपके पास किसी अन्य फ़ोल्डर के अंदर टेम्पलेट है:

$args = array(
    'post_type' => 'page', //it is a Page right?
    'post_status' => 'publish',   
    'meta_query' => array(
        array(
            'key' => '_wp_page_template',
            'value' => 'page-templates/template-name.php', // folder + template name as stored in the dB
        )
    )
);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.