kaniosrn-j
10/25/2017 - 8:40 AM

WordPress - Get Page By Template

This plugin can you found here: \wp-content\plugins\icreate-core\extensions

<?php

function get_page_by_template( $template_name ) {
	$args = array(
		'posts_per_page' => 1,
		'post_type'      => 'page',
		'orderby'        => 'post_title',
		'order'          => 'ASC',
		'meta_key'       => '_wp_page_template',
		'meta_value'     => $template_name
	);
	$pages = get_posts( $args );
	return ( count( $pages ) ) ? $pages[0] : false;
}

// How to use 
global $post;
use Roots\Sage\Extras;
use Roots\Sage\Titles;
use Creo\Helper;

$page       = Helper\get_page_by_template('template-opinion.php');
if( false !== $page ){
	$page_title = $page->post_title;
	$page_url   = get_permalink($page->ID);
} else {
	$page_title = '';
	$page_url   = '';
}

<h1><?php echo 	$page_title;?></h1>
	
<a href="<?php echo $page_url;?>" >All Opinion</a>
$opinions = Extras\get_listing( 'opinion', 3 );