如何显示页面列表以及每个页面使用的模板?

时间:2016-09-09 作者:gulliver

我想显示一个页面列表和每个页面使用的模板。

下面是我当前使用的代码,但结果有点冗长。

<?php
global $wpdb;

$sql = "SELECT post_title, meta_value
FROM $wpdb->posts a
JOIN $wpdb->postmeta b ON a.ID = b.post_id
WHERE a.post_type = \'page\'
AND a.post_status = \'publish\'
AND b.meta_key = \'_wp_page_template\'
";

$pages = $wpdb->get_results($sql);

echo \'<pre>\';
print_r($pages);
echo \'</pre>\';
?>
输出为…

[1] => stdClass Object
    (
        [post_title] => Notes
        [meta_value] => default
    )
我想把它简化为…

[1] Notes => default

1 个回复
最合适的回答,由SO网友:Malisa 整理而成

您可以尝试这段快速的代码,但它不会输出到数组。

    $args = array( \'meta_key\' => \'_wp_page_template\', \'sort_column\' => \'post_title\', \'sort_order\' => \'desc\');
    $templates = get_pages($args);
    foreach ( $templates as $template){
        $templatePage  = $template->meta_value;
        $templateName  = $template->post_name;

    echo "Named Template: {$templateName} - - {$templatePage}\\n";
    }

相关推荐

Updating modified templates

我想调整一些。php模板文件在我的WordPress主题中,我知道正确的过程是将相关文件复制到子主题文件夹中并在那里编辑文件,这样我的修改就不会在将来的主题更新中丢失。但这是否意味着我将无法从主题更新中获益,因为我将文件放在了我的子主题文件夹中?这可能不是一件好事,因为主题更新可能添加了一些有用的特性,甚至修复了我最初需要对代码进行调整的问题!这方面的常见解决方案是什么?有人推荐了一款Diff应用程序——这是人们常用的吗?