Aggiungere un Template al Pannello Attributi Pagina sia per Articoli che Pagine
Vorrei mantenere il mio tema principale come tema attivo, ma consentire agli utenti di selezionare un layout leggermente diverso tramite il pannello "Attributi Pagina/Articolo". Idealmente, vorrei memorizzare questo layout nella directory "styles" del mio tema principale, in una sua cartella dedicata.
MyTheme > styles > My-special-Layout > style.css
In modo che nel pannello "Attributi Pagina", appaia un template chiamato "My-special-layout"...
Tuttavia, ho due problemi...
Non riesco a far apparire il tema "child" nel pannello "Attributi Pagina". (Sto semplicemente aggiungendo una cartella sotto la directory del mio tema principale e inserendo un file
style.css
che ha il valore "Template: my_main_theme_directory
"). Ma non vedo mai apparire alcun template nel pannello "attributi pagina".Non riesco a ottenere il pannello "Attributi Pagina" nell'editor degli ARTICOLI. Vorrei permettere che il template sia applicabile sia agli Articoli che alle Pagine. Come posso ottenere questo pannello nell'editor degli articoli?

Non stai utilizzando i temi figli correttamente. Un tema figlio è un tema completamente separato che tutti devono utilizzare, ma che si affida a un altro tema per tutte le parti dei template che non fornisce. Quello che vuoi sono i template:
http://codex.wordpress.org/Theme_Development#Defining_Custom_Templates
In pratica, crea semplicemente un nuovo file del tema nella directory principale del tema (ad esempio foobar.php
) e scrivi questo all'inizio:
/*
Template Name: Foobar
*/
Questo ti darà un nuovo template chiamato Foobar (ovviamente, cambia Foobar con quello che preferisci. Questo è il nome che apparirà nel menu a discesa nella pagina dell'editor).
Attualmente, WordPress supporta i template solo per le pagine e i tipi di post personalizzati, non per i post. Ci sono modi per aggirare questo limite, come controllare un meta post sui post e recuperarlo nell'inclusione del template:
function my_post_templater($template){
if( !is_single() )
return $template;
global $wp_query;
$c_template = get_post_meta( $wp_query->post->ID, '_wp_page_template', true );
return empty( $c_template ) ? $template : $c_template;
}
add_filter( 'template_include', 'my_post_templater' );
function give_my_posts_templates(){
add_post_type_support( 'post', 'page-attributes' );
}
add_action( 'init', 'give_my_posts_templates' );
Se inserisci questo codice nel file functions.php
del tuo tema, dovrebbe funzionare (a patto che tu abbia effettivamente dei template personalizzati nella cartella del tuo tema).
Per maggiori informazioni sui temi figli, leggi qui:

Grazie John, hai ragione. Ho cambiato il titolo perché mi sono reso conto che non sto cercando un "child theme" ma piuttosto un template. Tuttavia, voglio che il template utilizzi il layout esistente del tema principale (index.php, single.php, page.php, ecc.) e prenda le informazioni di stile da styles/mytemplate/style.css. Come posso fare?
