Conditions: Page have template, for example: /* Template name: News */


We have many pages, and one page with assigned template (/* Template name: News */).

I want on main page (index.php) retrieve page(News) url and title.

  • 1
    I think you're going to have to clarify your question a little. It's very cryptic. May 15, 2012 at 14:41

1 Answer 1


Let me try to summarize what you want and answer:

I want on main page (index.php) retrieve page(News) url and title.

So you have a "News" page that's using a specific template called "News" and you want to grab that page's ID, URL, and title to display on the front page, correct?

Get a Page by Template

There is no built-in way to grab a page based on the template it's using. Instead, you have to search for all pages based on a hidden meta value that matches your page template. So, let's say your News template is named news-template.php in the theme, then you'd use the following code to get the first page that use that template:

$news_pages = get_pages( array(
    'meta_key'   => '_wp_page_template',
    'meta_value' => 'news-template.php',
    'number'     => 1
) );

$news_page = $news_pages[0];

Remember, since get_pages() returns an array, you have to manually select the first element of that array. Now this $news_page object contains the content of your News page.

Displaying Page Information

Now, inside your index.php page you can display this page's information by referencing the $news_page object.

  • Page ID: $news_page->ID
  • Page URL: get_page_link( $news_page->ID )
  • Page Title: $news_page->post_title
  • Thaanks :) You helped me ;)
    – Vitalij
    May 15, 2012 at 15:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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