¿Cómo obtener el menú desplegable de plantillas en los atributos de página de un tipo de entrada personalizada?

1 dic 2011, 04:50:48
Vistas: 27.4K
Votos: 10

Cuando registro mi tipo de entrada personalizada, establezco esto:

'hierarchical'   => true,
'supports'       => array( 'title','author', 'page-attributes' ),

Por lo tanto, se supone que debo ver 'orden', 'plantillas', 'padres' en el cuadro de Atributos cuando creo una nueva entrada. Sin embargo, no veo que aparezca el desplegable de 'plantillas'. ¿Hay algo más que deba hacer para habilitar la selección de 'plantillas'?

0
Todas las respuestas a la pregunta 4
3
23

Bien, desde WordPress 4.7 las plantillas personalizadas también están disponibles para tipos de posts personalizados. Al definir una plantilla, debajo del nombre de la plantilla añade otra línea como esta (donde 'product' es tu tipo de post personalizado):

<?php
/*
Nombre de la plantilla: Mi diseño personalizado
Tipo de Post de la Plantilla: post, page, product
*/

// tu código aquí

Y recuerda añadir 'page-attributes' cuando registres tu tipo de post personalizado:

'supports' => array('title', 'page-attributes'),

para mostrar la caja de "Atributos del Post".

4 may 2017 11:45:19
Comentarios

¡Lo clavaste! Exactamente lo que necesitaba.

Marty McGee Marty McGee
11 dic 2018 01:17:21

Más información sobre esto aquí: https://make.wordpress.org/core/2016/11/03/post-type-templates-in-4-7/

Dvaeer Dvaeer
26 may 2020 14:01:38

No tenía idea de esto. ¡Gracias!

Keith Keith
6 jul 2020 14:11:01
3

No puedes aplicar plantillas a tipos de contenido personalizados de esta manera. Eso solo aparecerá si el tipo de contenido es 'page' (revisa la línea 568 en wp-admin/includes/meta-boxes.php). Sin embargo, si deseas dar estilo a todos tus tipos de contenido personalizados de la misma manera pero diferente de otros tipos de contenido, podrías usar single-[posttype].php -> http://codex.wordpress.org/images/1/18/Template_Hierarchy.png

1 dic 2011 06:30:16
Comentarios

Sí, gracias. Es una pena que aún no tengan esta función.

rpeg rpeg
6 feb 2012 02:18:30

¿El menú desplegable de plantillas todavía no es compatible con los tipos de entrada personalizados a partir de la versión 4.1?

supertrue supertrue
12 feb 2015 19:41:37

¿encontraste / alguien encontró la solución para mostrar los atributos de página / selección de plantilla para TIPOS DE ENTRADA PERSONALIZADOS?

Riffaz Starr Riffaz Starr
27 mar 2015 20:12:09
0

Con mi tema, proporciono plantillas "virtuales". No hay archivos específicos {template}.php en mi tema, así que filtré las plantillas de PÁGINA de la siguiente manera:

function my_virtual_templates( $templates ) {

    $my_virtual_templates = array(
        'virtual_template_id_1' => 'Plantilla 1',
        'virtual_template_id_2' => 'Plantilla 2',
        'virtual_template_id_3' => 'Plantilla 3'
    );

    // Combinar con cualquier plantilla ya disponible
    $templates = array_merge( $templates, $my_virtual_templates );

    return $templates;
}

add_filter( 'theme_page_templates', 'my_virtual_templates' );

Estaba buscando una forma "sencilla" de agregar el meta box real en un Tipo de Post Personalizado (CPT) cuando me encontré con este post. Como mi nuevo CPT usará este mismo arreglo de plantillas "virtuales", solo necesitaba implementar un meta box para el post.

Usando el filtro theme_{$post_type}_templates automáticamente crea esta área de meta box para mí. Entonces, donde mi CPT se llama my_cpt agregué el filtro así:

add_filter( 'theme_my_cpt_templates', 'my_virtual_templates');

Ahora, el meta box y el selector aparecen, e incluso puedo cambiarlo en la pantalla de edición masiva ya que todo esto está integrado. ¡Muy práctico!

31 ago 2017 00:45:48
0
-1

simplemente crea cualquier archivo de plantilla y establece en la cabecera de la plantilla esto:

/*
Template Name: Algún Nombre
Template Post Type: tu_tipo, page
*/

luego el selector de plantilla aparecerá en 'Atributos de entrada'

23 oct 2018 14:31:57