I made a view templates for specific slugs

  • page1-220 use page.php
  • contact uses page-contact.php
  • service uses page-service.php

Now I want to list the pages with their templates on a "overview" page with page-overview.php template... .

I tried this:

<?php $args = array(
'post_type' => 'page', /* or just 'post' */
'posts_per_page' => -1,

$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
    echo '<p>'; 
    echo $i . '. ';
    echo ' - ';
    echo get_page_template(); 
    echo '</p>';
} ?>

get_page_template() allways returns the path to page-overview.php.

Wonder what I am missing here. I wonder if there is a way to get a list of ids, using the page.php template.

Many thanks in advance

  • 1
    get_page_template() returns the current page template. you need get_page_template_slug( $id ) to get the template of $id post.
    – idpokute
    Aug 14, 2019 at 18:56

1 Answer 1


I believe you need to use get_template_part, but you need to request the get_page_template_slug first.

So that would look like:

get_template_part( get_page_template_slug( get_the_ID() ) );

in lieu of

echo get_page_template();

And no need to echo it, it returns the template already printed.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.