Saya hanya ingin menanyakan halaman dengan templat halaman tertentu WP_Query
atau fungsi yang akan mengembalikan objek posting, tetapi saya tidak dapat menemukan informasi tentang itu di kodeks resmi.
Saya hanya ingin menanyakan halaman dengan templat halaman tertentu WP_Query
atau fungsi yang akan mengembalikan objek posting, tetapi saya tidak dapat menemukan informasi tentang itu di kodeks resmi.
Jawaban:
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 .
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'
)
)
);
post_type
. Kalau tidak, Anda tidak perlu meta_query
array untuk satu pasangan kunci / nilai kustom.
meta_key
dan meta_value
atau dengan array biasa, yang dapat mencakup beberapa kondisi.
Templat halaman disimpan sebagai nilai meta dengan kunci "_wp_page_template".
Jadi yang Anda butuhkan adalah menggunakan kunci itu dalam parameter kueri meta. Sebagai contoh
dan http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters
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.php
dan itu berhasil.
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
)
)
);