页面模板保存到一个名为_wp_page_template
. 如果未选择模板,则下拉列表显示»默认模板«,在这种情况下,该字段的值将为default
. 否则,元字段包含文件名,例如。page-template.php
. 或者,如果子目录中有模板,例如。template-directory/page-templateXYZ.php
. 因此,您可以查询default
, 使用模板为您提供所有页面。然后我们得到这些页面的元字段值。最后,我们确保得到唯一的结果,因此每个使用的模板只显示一次。
$pages_with_templates = new WP_Query( [
\'post_type\' => \'page\',
\'fields\' => \'ids\',
\'meta_query\' => [[
\'key\' => \'_wp_page_template\',
\'value\' => \'default\',
\'compare\' => \'!=\'
],],
] );
$pages_with_templates_ids = $pages_with_templates->posts;
$all_templates = [];
foreach ( $pages_with_templates_ids as $id ) {
$all_templates[] = get_post_meta( $id, \'_wp_page_template\', true );
}
$unique_templates = array_unique( $all_templates );