How to List All Pages (With their template names) Within a Website

Not so hard as you expected. Try this:

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>';

Leave a Comment