Question

Disclaimer: Je suis flambant neuf à WP.

J'utilise le Starkers cadre thème 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 dans footer.php Je vois ce code:

<?php get_sidebar( 'footer' ); ?>

Je ne comprends pas comment get_sidebar() sait comment prendre cet argument de chaîne et de trouver les widgets appropriés qui ont été définis par register_sidebar(). Dans l'extrait functions.php I posté ci-dessus. Il n'y a aucune mention du « Pied de page », sauf pour les propriétés name, id et description. Mais il semble étrange pour moi que get_sidebar() rechercherait « pied de page » intérieur de ces propriétés.

Est-ce que ce sens de faire ce que je demande? Y at-il une pièce manquante?

Les raisons je demande parce que  - Je voudrais en savoir plus sur l'architecture WP  -. Je voudrais être en mesure de définir une zone de widget personnalisé et de savoir comment rendre sur une page spécifique

Merci une tonne.

Était-ce utile?

La solution

Vous appelez simplement get_sidebar() de index.php et il charge le sidebar.php de fichier thème.

register_sidebar() , d'autre part, est utilisé pour les widgets où les plugins et autres veulent ajouter dynamiquement le contenu de votre sidebar.php fichier si vos supports à thème il.

Dans votre cas, est-il un fichier appelé sidebar-footer.php dans le répertoire de votre thème?

Autres conseils

Je ne l'ai jamais pris la peine avec get_sidebar(). Au lieu de cela, je viens d'utiliser dynamic_sidebar(). Vous appelleriez comme ceci:

dynamic_sidebar('first-footer-widget-area');

Et qui prend soin de toute la barre latérale. Pas plus d'inclusions de fichiers, pas plus de dossiers thématiques encombrées. Si je veux avoir 5 différentes barres latérales, il n'ajoute pas de fichiers, seules les fonctions supplémentaires dans functions.php.

get_sidebar('name') obtient un modèle de barre latérale du nom sidebar-name.php .

Dans la barre latérale-nom.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'endroit où les widgets vont.

register_sidebar(array(name=>'some-name-hopefully-the-same', ...)) est ce qui permet dynamic_sidebar au travail.

Comme vous pouvez le voir, get_sidebar(templatename) est à utiliser avec la barre latérale-modèles. Si vous n'avez pas besoin pour eux, vous pouvez simplement appeler dynamic_sidebar(sidebarname) directement à partir de votre thème.

tentatives de get_sidebar('footer') pour charger sidebar-footer.php du thème actif. Starkers fournit ce fichier. Vérifiez starkers/sidebar-footer.php et les choses doivent être claires.

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top