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

Explaining:

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.

Answer

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:

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

Tagged with →  
Share →

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>