मेरे पास "foo.php" में "फू" नामक एक टेम्पलेट है, मैं उस टेम्पलेट का उपयोग करने वाले सभी पृष्ठों का चयन करने में सक्षम होना चाहता हूं। मैंने थोड़ी देर के लिए खोज की है लेकिन ऐसा करने का एक सफल तरीका नहीं ढूंढ पाया है ... क्या कोई मुझे ऐसा करने का उचित/एकमात्र तरीका बता सकता है?

10
nathanjosiah 3 अक्टूबर 2011, 07:52

3 जवाब

सबसे बढ़िया उत्तर

आप निम्न कोड का उपयोग करके इसे प्राप्त कर सकते हैं

$query = new WP_Query( array( 'meta_key' => '_wp_page_template', 'meta_value' => 'foo.php' ) );

if ( have_posts() ) while ( have_posts() ) : the_post();
<?php the_title(); ?>
<?php endwhile; // end of the loop. ?>
7
Robot 3 अक्टूबर 2011, 09:08
1
अगर आप 'post_type' => 'page' जोड़ते हैं तो यह काम करेगा। आपको धन्यवाद!
 – 
nathanjosiah
3 अक्टूबर 2011, 21:23
और केवल 'पदानुक्रमित' => 0 . के मामले में भी
 – 
open-ecommerce.org
22 जुलाई 2014, 16:44
1
इस (और जेसी बाल्टज़ार के समाधान) पर स्पष्टीकरण के लिए, यदि आपका टेम्पलेट उपनिर्देशिका में रखा गया है, तो आपको इसे मेटा_वैल्यू में शामिल करना होगा। उदाहरण के लिए, 'meta_value' => 'templates/template-contact.php'
 – 
Josh Stabback
5 जिंदा 2017, 21:49
4
if ( have_posts() ) while ( have_posts() ) : the_post(); if ( $query->have_posts() ) while ( $query->have_posts() ) : $query->the_post(); नहीं होना चाहिए?
 – 
wp-overwatch.com
27 फरवरी 2018, 09:59

यह भी काम करता है

$pages = get_pages(

     array(

    'meta_key' => '_wp_page_template',

    'meta_value' => 'template.php'
       )
);

foreach($pages as $page){
    echo $page->post_title.'<br />';
}

http://jorgepedret.com/old/web-Development/get-pages-by-template-name-in-wordpress/

5
Jessie Baltazar 19 पद 2013, 07:42
मैं पेजिनेशन भी कैसे जोड़ूं?
 – 
Nitish
7 अक्टूबर 2017, 09:52
अद्यतन नहीं। देखें wordpress.stackexchange.com/questions /29918/…
 – 
Nadav
29 मार्च 2021, 12:59

रोबोट का जवाब अच्छा है, लेकिन मैंने सोचा कि मैं कुछ बातें स्पष्ट कर दूं।

सबसे पहले, आपको अपने द्वारा बनाई गई क्वेरी के लिए वेरिएबल का उपयोग करना चाहिए, इसलिए यह $query->have_posts() आदि होगा।

दूसरा, आपको post_type निर्दिष्ट करना चाहिए। मैंने किसी का भी उपयोग किया, ताकि यह संशोधनों को छोड़कर किसी भी प्रकार के पोस्ट को खींच ले।

अंत में, यदि यह किसी अन्य WP लूप वाले पृष्ठ में है, तो आप wp_reset_query का उपयोग करना चाह सकते हैं। मैंने केवल मामले में एक नीचे और एक ऊपर जोड़ा है, लेकिन आपको वास्तव में केवल इसकी आवश्यकता है यदि आपके पास ऊपर या नीचे एक और लूप है। यदि आप नहीं करते हैं तो इसे हटा दें।

यहाँ कोड है:

wp_reset_query();
$query = new WP_Query( array(
    'post_type'  => 'any',
    'meta_key'   => '_wp_page_template',
    'meta_value' => 'foo.php'
) );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) : $query->the_post(); // WP loop
        the_title();
    endwhile; // end of the loop.
} else { // in case there are no pages with this template
    echo 'No Pages with this template';
}
wp_reset_query();

उम्मीद है कि किसी की मदद करता है !! हैप्पी कोडिंग!

4
Berto 19 मई 2017, 23:26
धन्यवाद!!!! पेज बनाने और इसे एक बच्चा बनाने के बाद मैं अपने टेम्पलेट को पहचानने के लिए क्वेरी प्राप्त करने का यही एकमात्र तरीका था। यह 'post_type' => 'any' रहा होगा?
 – 
sean
4 जिंदा 2019, 18:53