通过模板名称查询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();

【通过模板名称查询WordPress中的页面】希望对某人有帮助!!编码愉快!

    推荐阅读