如何列出所有页面及其模板?

时间:2016-11-03 作者:glvr

我想列出所有网站页面及其使用的模板。

是否有一个mod to wp\\u list\\u页面可以这样做?

4 个回复
SO网友:Michael

https://codex.wordpress.org/Function_Reference/get_page_template_slug

获取所有页面的基本查询,按标题排序,然后输出页面标题和模板文件名:

$args = array(
    \'post_type\' => array( \'page\' ),
    \'order\' => \'ASC\',
    \'orderby\' => \'title\'
    );
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo \'<p>\'; 
        the_title();
        echo \' - \';
        echo get_page_template_slug(); 
        echo \'</p>\';
    }
    wp_reset_postdata();
}

SO网友:Kanon Chowdhury

我尝试过用流动的代码来获取所有带有模板的页面,并且对我来说非常适合。这段代码的目的是获取所有自定义页面模板,因为我是开发单页面模板的。

$args = array(
    "post_type" => "page",
    "order" => "ASC",
    "orderby" => "menu_order"
);
$the_query = new WP_Query( $args );
if ( have_posts() ) {
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        ?>
        <div id="post-<?php the_ID() ?>">
        <?php
        global $post;
        $slug = $post->post_name;
        get_template_part("page", $slug);
        ?>
        </div>
        <?php
    }
    wp_reset_postdata();
}

SO网友:david_nash

您可以使用以下mysql,而不是在PHP中执行此操作:

SELECT distinct meta_value FROM `wp_postmeta` WHERE meta_key=\'_wp_page_template\'

我只是需要它来快速检查一下,这样我就可以用theme_page_templates 滤器

SO网友:Jorge Ramírez

使用phpmyadmin(sql),您可以运行此查询以获取所有页面及其使用模板的列表:

SELECT p.post_name, p.post_title, meta_key, meta_value FROM `wp_postmeta` INNER JOIN wp_posts p ON p.ID = post_id WHERE meta_key=\'_wp_page_template\' ORDER BY meta_value, p.post_name

相关推荐