Gostaria de consultar apenas páginas com um determinado modelo de página WP_Query
ou uma função que retornasse o objeto de postagem, mas não consigo encontrar nenhuma informação sobre isso no codex oficial.
14
Tente isso ... Supondo que o nome do modelo seja '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...
Você também pode usar get_posts ou modificar postagens de consulta para concluir o trabalho. Ambas as funções usam os mesmos parâmetros que WP_Query .
Incorreto: a partir do wordpress 3, você precisa de algo semelhante a:
$args = array(
'post_type' => 'page',
'meta_query' => array(
array(
'key' => '_wp_page_template',
'value' => 'my_template.php'
)
)
);
post_type
. Caso contrário, você não precisará dameta_query
matriz para um único par de chave / valor personalizado.meta_key
emeta_value
ou com uma matriz simples, o que poderia incluir várias condições.O modelo da página é armazenado como um meta-valor com a chave "_wp_page_template".
Então, tudo que você precisa é usar essa chave em um parâmetro de meta consulta. Por exemplo
Consulte http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query#Query_based_on_Custom_Field_and_Sorted_by_Value
e http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters
fonte
Se alguém tentar incorretamente resultar em zero postagens, provavelmente o nome do modelo está errado. Eu tentei o nome do arquivo php e o nome do meu modelo e eles não funcionaram. Decidi inspecionar a caixa de seleção de modelos, onde selecionamos o modelo no editor de páginas. Eu achei isto:
Eu usei
templates-map/component-tutorial-1.php
e funcionou.fonte
Se você tiver o modelo dentro de outra pasta:
fonte