Avertissement: je suis tout nouveau sur WP.
J'utilise le thème du framework Starkers HTML5 . Dans le functions.php
je vois ce code:
function starkers_widgets_init() {
// Area 1, located at the top of the sidebar.
register_sidebar( array(
'name' => __( 'Primary Widget Area', 'starkers' ),
'id' => 'primary-widget-area',
'description' => __( 'The primary widget area', 'starkers' ),
'before_widget' => '<li>',
'after_widget' => '</li>',
'before_title' => '<h3>',
'after_title' => '</h3>',
) );
// Area 3, located in the footer. Empty by default.
register_sidebar( array(
'name' => __( 'First Footer Widget Area', 'starkers' ),
'id' => 'first-footer-widget-area',
'description' => __( 'The first footer widget area', 'starkers' ),
'before_widget' => '<li>',
'after_widget' => '</li>',
'before_title' => '<h3>',
'after_title' => '</h3>',
) );
// ... more calls to register_sidebar() ...
}
Et footer.php
je vois ce code:
<?php get_sidebar( 'footer' ); ?>
Je ne comprends pas comment get_sidebar()
sait prendre cet argument de chaîne et trouver les widgets appropriés qui ont été définis par register_sidebar()
. Dans l'extrait de functions.php que j'ai publié ci-dessus. Il n'y a aucune mention de « pied de page » , sauf pour les name
, id
et les description
propriétés. Mais il me semblerait étrange de get_sidebar()
rechercher un «pied de page» à l'intérieur de ces propriétés.
Est-ce que cela a du sens ce que je demande? Y a-t-il une pièce manquante?
Les raisons que je demande sont parce que - je voudrais en savoir plus sur l'architecture WP - je voudrais pouvoir définir une zone de widget personnalisée et savoir comment la rendre sur une page spécifique.
Merci beaucoup.
la source
sidebar-footer.php
appelle conditionnellementdynamic_sidebar()
toutes les zones de widget appropriées.get_sidebar('name')
obtient un modèle de barre latérale du nomsidebar-name.php
.Dans sidebar-name.php, il y a le code HTML de la barre latérale, et un appel à
dynamic_sidebar('some-name-hopefully-the-same')
, qui est là où iront les widgets.register_sidebar(array(name=>'some-name-hopefully-the-same', ...))
est ce qui permet à dynamic_sidebar de fonctionner.Comme vous pouvez le voir,
get_sidebar(templatename)
est destiné à être utilisé avec les modèles de barre latérale. Si vous n'en avez pas besoin, vous pouvez simplement appelerdynamic_sidebar(sidebarname)
directement à partir de votre thème.la source
get_sidebar('footer')
tente de charger àsidebar-footer.php
partir du thème actif. Starkers fournit ce fichier. Vérifiezstarkers/sidebar-footer.php
et les choses devraient devenir claires.la source