Domanda

Avviso: Sono nuovo di zecca per WP.

Sto usando il Starkers HTML5 tema quadro . Nel functions.php vedo questo codice:

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() ... 
}

E in footer.php vedo questo codice:

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

Non capisco come get_sidebar() sa come prendere tale argomento stringa e trovare i widget appropriate che sono stati definiti da register_sidebar(). Nel frammento di functions.php ho postato sopra. Non v'è alcuna menzione di "footer" tranne che per le proprietà name, id e description. Ma sembrerebbe strano che get_sidebar() sarebbe cercare 'footer' dentro quelle proprietà.

Questo ha senso quello che sto chiedendo? C'è qualche pezzo mancante?

Le ragioni che sto chiedendo è perché - Mi piacerebbe sapere di più su l'architettura WP -. Mi piacerebbe essere in grado di definire una zona di widget personalizzato e sanno come rendere su una pagina specifica

Grazie una tonnellata.

È stato utile?

Soluzione

get_sidebar() da index.php e carica il file del tema sidebar.php.

register_sidebar() , d'altra parte, viene utilizzato per i widget in cui i plugin e come desidera aggiungere dinamicamente i contenuti nel vostro sidebar.php file se il tema lo supporta.

Nel tuo caso, c'è un file chiamato sidebar-footer.php nella directory del vostro tema?

Altri suggerimenti

Non ho mai preso la briga con get_sidebar(). Invece mi basta usare dynamic_sidebar(). Si potrebbe chiamare in questo modo:

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

E che si prende cura di tutta la barra laterale. Nessun altro inclusioni di file, non più ingombra cartelle a tema. Se voglio avere 5 diverse barre laterali, non aggiunge alcun file, solo le funzioni supplementari in functions.php.

get_sidebar('name') ottiene un modello barra laterale del nome sidebar-name.php .

In sidebar-name.php, c'è il codice HTML per la barra laterale, e una chiamata a dynamic_sidebar('some-name-hopefully-the-same'), che è dove i widget andranno.

register_sidebar(array(name=>'some-name-hopefully-the-same', ...)) è ciò che permette dynamic_sidebar al lavoro.

Come si può vedere, get_sidebar(templatename) è per l'utilizzo con la barra laterale-templates. Se non si ha bisogno di loro, si può chiamare dynamic_sidebar(sidebarname) direttamente dal vostro tema.

tentativi get_sidebar('footer') per caricare sidebar-footer.php dal tema attivo. Starkers non fornire questo file. Controllare starkers/sidebar-footer.php e le cose dovrebbero diventare chiare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top