Frage

Haftungsausschluss: Ich bin Marken, die neu in WP verprügeln.

Ich benutze das Starkers HTML5 Framework -Thema. In dem functions.php Ich sehe diesen 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() ... 
}

Und in footer.php Ich sehe diesen Code:

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

Ich verstehe nicht wie get_sidebar() weiß, wie man dieses String -Argument nimmt und die entsprechenden Widgets findet, die von definiert wurden, register_sidebar(). In den Funktionen.php Snippet habe ich oben gepostet. Es gibt keine Erwähnung von "Fußzeile" außer der name, id und description Eigenschaften. Aber es würde mir seltsam erscheinen get_sidebar() würde in diesen Eigenschaften nach 'Fußzeile' suchen.

Macht das Sinn, was ich frage? Fehlt ein Stück?

Die Gründe, die ich frage, ist, dass - ich würde gerne mehr über die WP -Architektur erfahren - ich möchte in der Lage sein, einen benutzerdefinierten Widget -Bereich zu definieren und zu wissen, wie man ihn auf einer bestimmten Seite rendert.

Danke vielmals.

War es hilfreich?

Lösung

Sie rufen einfach an get_sidebar() aus index.php und es lädt die Themendatei sidebar.php.

register_sidebar(), Andererseits wird für Widgets verwendet, bei denen Plugins und solche Inhalte in Ihrem dynamisch hinzufügen möchten sidebar.php Datei, wenn Ihr Thema es unterstützt.

In Ihrem Fall gibt es eine Datei mit dem Namen sidebar-footer.php im Verzeichnis Ihres Themas?

Andere Tipps

Ich habe mich nie darum gekümmert get_sidebar(). Stattdessen benutze ich nur dynamic_sidebar(). Sie würden es so nennen:

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

Und das kümmert sich um die gesamte Seitenleiste. Keine Dateieinschlüsse mehr, keine überfüllten Themenordner mehr. Wenn ich 5 verschiedene Seitenleisten haben möchte, fügt es keine Dateien hinzu, nur zusätzliche Funktionen in functions.php.

get_sidebar('name') Holen Sie sich eine Seitenleistenvorlage des Namens sidebar-name.php .

Innerhalb der Seitenleiste-name.php gibt es die HTML für die Seitenleiste und einen Anruf an dynamic_sidebar('some-name-hopefully-the-same'), wohin werden die Widgets gehen.

register_sidebar(array(name=>'some-name-hopefully-the-same', ...)) ist das, was dynamic_sideBar ermöglicht, zu funktionieren.

Wie du sehen kannst, get_sidebar(templatename) ist für die Verwendung mit Seitenleisten-Templatten. Wenn Sie sie nicht benötigen, können Sie einfach anrufen dynamic_sidebar(sidebarname) direkt aus Ihrem Thema.

get_sidebar('footer') Versuche zu laden sidebar-footer.php Aus dem aktiven Thema. Starkers stellt diese Datei bereit. Prüfen starkers/sidebar-footer.php Und die Dinge sollten klar werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top