Adăugarea unui șablon în panoul Atribute Pagină pentru articole și pagini
Aș dori să păstrez tema mea principală ca temă activă, dar să permit utilizatorilor să selecteze un aspect ușor diferit prin intermediul panoului "Atribute Pagină/Articol". În mod ideal, aș dori să stochez acest aspect în directorul "styles" al temei mele principale, într-un folder separat.
MyTheme > styles > My-special-Layout > style.css
Astfel încât în panoul "Atribute Pagină", să văd un șablon numit "My-special-layout"...
Totuși, am două probleme...
Nu reușesc să fac tema "copil" să apară în panoul "Atribute Pagină". (Adaug doar un folder în directorul temei principale și plasez un fișier
style.css
acolo care are valoarea "Template: my_main_theme_directory
"). Dar nu văd niciodată șabloanele să apară în panoul "atribute pagină".Nu pot obține panoul "Atribute Pagină" în editorul de ARTICOLE. Aș dori să permit aplicarea șablonului atât pentru Articole cât și pentru Pagini. Cum pot obține acest panou în editorul de articole?

Nu folosiți temele copil corect. O temă copil este o temă complet separată pe care toată lumea trebuie să o folosească, dar care se bazează pe o altă temă pentru toate părțile de șabloane pe care nu le oferă. Ceea ce doriți sunt șabloanele:
http://codex.wordpress.org/Theme_Development#Defining_Custom_Templates
Practic, creați un nou fișier de temă în directorul rădăcină al temei (de exemplu foobar.php
) și scrieți acest lucru în partea de sus:
/*
Template Name: Foobar
*/
Aceasta vă va oferi un nou șablon numit Foobar (evident, schimbați Foobar cu orice doriți. Acesta este numele care va apărea în meniul derulant pe pagina de editare).
Momentan, WordPress acceptă șabloane doar pentru pagini și tipuri de postări personalizate, nu pentru postări. Există modalități de a rezolva acest lucru, cum ar fi verificarea unei meta-informații pentru postări și extragerea acesteia la includerea șablonului:
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' );
Dacă adăugați acest cod în fișierul functions.php
al temei dvs., ar trebui să funcționeze (atâta timp cât aveți efectiv șabloane personalizate în folderul temei).
Pentru mai multe informații despre temele copil, citiți aici:

Mulțumesc John, ai dreptate. Am schimbat titlul deoarece am realizat că nu caut de fapt un "child theme" ci mai degrabă un template. Totuși, doresc ca template-ul să folosească layout-ul existent al temei principale (index.php, single.php, page.php, etc) și să extragă informațiile de stil din styles/mytemplate/style.css. Cum pot face asta?
