Kueri templat halaman dengan WP_Query


14

Saya hanya ingin menanyakan halaman dengan templat halaman tertentu WP_Queryatau fungsi yang akan mengembalikan objek posting, tetapi saya tidak dapat menemukan informasi tentang itu di kodeks resmi.

Jawaban:


23

Coba ini ... Dengan asumsi nama templat adalah '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...

Anda juga dapat menggunakan get_posts , atau mengubah posting kueri untuk menyelesaikan pekerjaan. Kedua fungsi ini menggunakan parameter yang sama dengan WP_Query .


20

Salah: pada wordpress 3 Anda memerlukan sesuatu yang mirip dengan:

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

TERIMA KASIH!! Membaca halaman ini terlalu cepat, menggunakan jawaban yang diterima. Ini berhasil. Untuk orang lain, perhatikan array di dalam array di dalam array ...
Jeremy Carlson

3
Satu-satunya perbedaan di sini adalah post_type. Kalau tidak, Anda tidak perlu meta_queryarray untuk satu pasangan kunci / nilai kustom.
Rutwick Gangurde

Tentu saja permintaan meta diperlukan. Kecuali itu bisa "inline" dengan meta_keydan meta_valueatau dengan array biasa, yang dapat mencakup beberapa kondisi.
Maxime Culea


0

Jika ada upaya yang salah menghasilkan nol posting, mungkin nama template salah. Saya mencoba nama file php dan nama templat saya dan ternyata tidak berhasil. Kemudian saya memutuskan untuk memeriksa kotak pilih templat di mana kita memilih templat pada editor halaman. Aku menemukan ini:

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

Saya menggunakan templates-map/component-tutorial-1.phpdan itu berhasil.


0

Jika Anda memiliki templat di dalam folder lain:

$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
        )
    )
);
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.