Запросы страниц в WordPress по имени шаблона - PullRequest
4 голосов
/ 03 октября 2011

У меня есть шаблон с именем «Foo» в «foo.php», я хотел бы иметь возможность выбрать все страницы, которые используют этот шаблон.Я уже некоторое время искал, но не смог найти успешный способ сделать это ... Может кто-нибудь просветить меня о правильном / единственном способе сделать это?

Ответы [ 3 ]

7 голосов
/ 03 октября 2011

Вы можете получить это, используя следующий код

$query = new WP_Query( array( 'meta_key' => '_wp_page_template', 'meta_value' => 'foo.php' ) );

if ( have_posts() ) while ( have_posts() ) : the_post();
<?php the_title(); ?>
<?php endwhile; // end of the loop. ?>
5 голосов
/ 19 декабря 2013

Это также работает

$pages = get_pages(

     array(

    'meta_key' => '_wp_page_template',

    'meta_value' => 'template.php'
       )
);

foreach($pages as $page){
    echo $page->post_title.'<br />';
}

http://jorgepedret.com/old/web-development/get-pages-by-template-name-in-wordpress/

3 голосов
/ 19 мая 2017

Робот ответит хорошо, но я подумал, что проясню несколько вещей.

Во-первых, вы должны использовать переменную для созданного вами запроса, так что это будет $ query-> have_posts () и т. Д.

Во-вторых, вы должны указать post_type. Я использовал любой, так что он будет тянуть любые типы сообщений, кроме ревизий.

И последнее, если это страница с любыми другими циклами WP, вы можете использовать wp_reset_query. Я добавил один ниже и один выше на всякий случай, но вам это действительно нужно, только если у вас есть другой цикл выше или ниже. Удалите его, если вы этого не сделаете.

Вот код:

wp_reset_query();
$query = new WP_Query( array(
    'post_type'  => 'any',
    'meta_key'   => '_wp_page_template',
    'meta_value' => 'foo.php'
) );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) : $query->the_post(); // WP loop
        the_title();
    endwhile; // end of the loop.
} else { // in case there are no pages with this template
    echo 'No Pages with this template';
}
wp_reset_query();

Надеюсь, это поможет кому-то !! Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...