Я хотел бы запрашивать только страницы с определенным шаблоном страницы WP_Query
или функцией, которая возвращала бы объект post, но я не могу найти никакой информации об этом в официальном кодексе.
14
Попробуйте это ... Предполагая, что имя шаблона '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 .
Неправильно: с WordPress 3 вам нужно что-то похожее на:
$args = array(
'post_type' => 'page',
'meta_query' => array(
array(
'key' => '_wp_page_template',
'value' => 'my_template.php'
)
)
);
post_type
. В противном случае вам не нуженmeta_query
массив для одной пользовательской пары ключ / значение.meta_key
иmeta_value
или с простым массивом, который может включать в себя несколько условий.Шаблон страницы хранится в виде мета-значения с ключом "_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
источник
Если чья-либо попытка неверно приведет к нулю сообщений, возможно, имя шаблона неверно. Я попробовал имя файла php и имя моего шаблона, и они не работали. Тогда я решил проверить окно выбора шаблонов, где мы выбираем шаблон в редакторе страниц. Я нашел это:
Я использовал,
templates-map/component-tutorial-1.php
и это сработало.источник
Если у вас есть шаблон в другой папке:
источник