个性化阅读
专注于IT技术分析

通过模板名称查询WordPress中的页面

我在” foo.php”中有一个名为” Foo”的模板, 我希望能够选择所有使用该模板的页面。我已经搜索了一段时间, 但没有找到一种成功的方法来做…有人能以正确/唯一的方式启发我吗?


#1


你可以使用以下代码来获取

$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. ?>

#2


这也有效

$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


机器人的回答很好, 但是我想我要澄清一些事情。

首先, 你应该对创建的查询使用变量, 因此它将是$ query-> have_posts()等。

其次, 你应该指定post_type。我使用了any, 因此它将拉除修订版以外的所有帖子类型。

最后, 如果该页面位于具有任何其他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();

希望对某人有帮助!!编码愉快!

赞(0)
未经允许不得转载:srcmini » 通过模板名称查询WordPress中的页面

评论 抢沙发

评论前必须登录!