我在”
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中的页面】希望对某人有帮助!!编码愉快!
推荐阅读
- 了解下WSDL 端口
- 从WordPress自定义控件获取值的正确方法
- 解析错误(语法错误,文件结尾意外,但没有错误[关闭])
- 在WordPress中设置偏移量时分页不起作用
- 从主题wordpress覆盖wedevs-dokan-plugin模板文件
- 覆盖表格样式,WordPress主题[关闭]
- 在每个帖子上显示元关键字和说明
- (第240行的C:\xampp\htdocs\wordpress\wp-includes\class-wp-http-curl.php中的最大执行时间超过60秒)
- 使用wp-rest api登录wordpress网站