Come ottenere il menu a discesa dei template negli attributi di pagina di un custom post type?

1 dic 2011, 04:50:48
Visualizzazioni: 27.4K
Voti: 10

Quando registro il mio custom post type, imposto questo:

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

Quindi, dovrei vedere 'ordine', 'template' e 'genitore' nel box Attributi quando creo un nuovo post. Tuttavia, non vedo apparire il menu a discesa dei 'template'. C'è qualcos'altro che dovrei fare per abilitare la scelta dei 'template'?

0
Tutte le risposte alla domanda 4
3
23

Bene, a partire da WordPress 4.7 i template personalizzati sono disponibili anche per i custom post type. Quando si definisce un template, sotto il nome del template aggiungi un'altra riga come la seguente (dove 'product' è il tuo custom post type):

<?php
/*
Template Name: Il mio layout personalizzato
Template Post Type: post, page, product
*/

// il tuo codice qui

e ricorda di aggiungere 'page-attributes' quando registri il tuo custom post type:

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

per visualizzare il box "Attributi articolo".

4 mag 2017 11:45:19
Commenti

perfetto! esattamente quello che mi serviva.

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

Maggiori informazioni qui: https://make.wordpress.org/core/2016/11/03/post-type-templates-in-4-7/

Dvaeer Dvaeer
26 mag 2020 14:01:38

Non ne avevo idea. Grazie!

Keith Keith
6 lug 2020 14:11:01
3

Non puoi applicare i template ai tipi di post personalizzati in questo modo. Questo apparirà solo se il tipo di post è 'page' (controlla la riga 568 di wp-admin/includes/meta-boxes.php). Tuttavia, se vuoi stilizzare tutti i tuoi tipi di post personalizzati nello stesso modo ma diversamente dagli altri tipi di post, potresti usare single-[posttype].php -> http://codex.wordpress.org/images/1/18/Template_Hierarchy.png

1 dic 2011 06:30:16
Commenti

Sì, grazie. Peccato che non abbiano ancora questa funzionalità.

rpeg rpeg
6 feb 2012 02:18:30

Il menu a discesa dei template non è ancora supportato nei custom post type con la versione 4.1?

supertrue supertrue
12 feb 2015 19:41:37

avete / qualcuno ha trovato la soluzione per mostrare gli attributi della pagina / selezione del template per i CUSTOM POST TYPE??

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

Con il mio tema, fornisco template "virtuali". Non ci sono file specifici {template}.php nel mio tema, quindi ho filtrato i template di PAGINA in questo modo:

function my_virtual_templates( $templates ) {

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

    // Unisci con qualsiasi template già disponibile
    $templates = array_merge( $templates, $my_virtual_templates );

    return $templates;
}

add_filter( 'theme_page_templates', 'my_virtual_templates' );

Cercavo un modo "semplice" per aggiungere l'effettivo meta box del post su un Custom Post Type (CPT) quando mi sono imbattuto in questo post. Dato che il mio nuovo CPT utilizzerà questo stesso array di template "virtuali", avevo solo bisogno di implementare un meta box per il post.

Utilizzando il filtro theme_{$post_type}_templates viene automaticamente creata questa area del meta box per me. Quindi, dove il mio CPT si chiama my_cpt ho aggiunto il filtro in questo modo:

add_filter( 'theme_my_cpt_templates', 'my_virtual_templates');

Ora, il meta box e il selettore vengono visualizzati, e posso persino modificarlo nella schermata di modifica multipla poiché tutto questo è già integrato. Molto utile!

31 ago 2017 00:45:48
0
-1

crea un qualsiasi file template e imposta nell'header del template questo:

/*
Template Name: Nome Personalizzato
Template Post Type: tuo_tipo, page
*/

poi il selettore del template apparirà in 'Attributi articolo'

23 ott 2018 14:31:57