Consulta de modelo de página com WP_Query

8

Gostaria de consultar apenas páginas com um determinado modelo de página com WP_Query ou uma função que retornaria o objeto de postagem, mas não consigo encontrar nenhuma informação sobre isso no códice oficial.

    
por Alexandre Kirszenberg 30.09.2011 / 21:20

4 respostas

13

Tente isso ... Supondo que o nome do template 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 posts de consulta para fazer o trabalho. Ambas as funções usam os mesmos parâmetros que WP_Query .

    
por Rutwick Gangurde 01.10.2011 / 05:18
20

Incorreto: a partir do wordpress 3 você precisa de algo parecido com:

$args = array(
    'post_type'  => 'page', 
    'meta_query' => array( 
        array(
            'key'   => '_wp_page_template', 
            'value' => 'my_template.php'
        )
    )
);
    
por BenJam 18.05.2012 / 19:12
1

O modelo de página é armazenado como um valor meta com a chave "_wp_page_template".

Então, tudo que você precisa é usar essa chave em um parâmetro de consulta meta. Para exemplos

Consulte enlace

e enlace

    
por anmari 01.10.2011 / 04:07
0

Se a tentativa de alguém resultar incorretamente em zero postagens, provavelmente o nome do modelo está errado. Eu tentei o nome do arquivo php e meu nome de modelo e eles não funcionaram. Então decidi inspecionar a caixa de seleção de modelos, onde selecionamos o modelo no editor de páginas. Eu encontrei isto:

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

Eu usei templates-map/component-tutorial-1.php e funcionou.

    
por Ivan Gomes 05.09.2018 / 01:09