pages – Obtener ID de página por plantilla

Pregunta:

Quiero saber si es posible obtener el ID de una página con una plantilla específica. ¿Es esto posible obtener el ID de una página asignada a "page-special.php"?

Respuesta:

Cuando se crea una página, la plantilla asignada a esa página se guarda como meta de publicación personalizada de la misma manera que los campos personalizados. La meta_key es _wp_page_template y el meta_value será la plantilla de página

Simplemente puede hacer uso de get_pages para recuperar todas las páginas que tienen un meta_value de la plantilla especificada

$pages = get_pages(array(
    'meta_key' => '_wp_page_template',
    'meta_value' => 'page-special.php'
));
foreach($pages as $page){
    echo $page->ID.'<br />';
}

EDITAR 23-07-2015

Si solo necesita los identificadores de página, entonces usa get_posts y luego simplemente pasa la page como post_type y el valor 'ids as campos'. Esto asegurará una consulta mucho más rápida y optimizada, ya que solo devolveremos la columna de identificación de la publicación en la base de datos y no todas para las páginas dadas.

( Requiere PHP 5.4+ )

$args = [
    'post_type' => 'page',
    'fields' => 'ids',
    'nopaging' => true,
    'meta_key' => '_wp_page_template',
    'meta_value' => 'page-special.php'
];
$pages = get_posts( $args );
foreach ( $pages as $page ) 
    echo $page . '</br>';

Leave a Comment

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

web tasarım