it-swarm.com.de

Unterschiedliche Widgets auf unterschiedlichen Seitenvorlagen?

Wenn ich mehrere verschiedene Seitenvorlagen habe, wie würde ich für jede dieser Vorlagen eine andere Sammlung von Seitenleisten-Widgets anzeigen? Ich benutze das Starkers-Thema als Ausgangspunkt.

4
cannyboy

Sie müssen weitere Seitenleisten in Ihrer functions.php-Datei erstellen und dann die Seitenvorlagen bearbeiten, um die gewünschte Seitenleiste aufzurufen.

Seitenleisten hinzufügen

Gehe in deine functions.php Datei. Sie sollten sehen, dass einige Seitenleisten bereits registriert sind. Der Code sieht ungefähr so ​​aus:

//Adds default sidebar
 if ( function_exists('register_sidebar') )
 register_sidebar();

Um eine weitere Seitenleiste hinzuzufügen, fügen Sie den folgenden Code nach der vorhandenen Seitenleistenregistrierung beliebig oft hinzu.

//Registers new sidebar
if ( function_exists('register_sidebar') ) {
    register_sidebar(array('name' => 'Name Sidebar Here','before_widget' => '','after_widget' => '','before_title' => '<h2 class="widgettitle">','after_title' => '</h2>'));    
} 

Wo steht 'Name Sidebar Here'? Geben Sie einen logischen Namen für diese neue Sidebar ein. Der Rest des Arrays ermöglicht es Ihnen, HTML vor dem Widget (before_widget) einzufügen, wenn Ihr Design dies für den Entwurf erfordert, und HTML nach dem Widget (after_widget) einzufügen. In Themen wird außerdem häufiger ein benutzerdefinierter Stil für Widget-Titel verwendet. Sie können diesen HTML-Code vor dem Titel (before_title) und nach dem Titel (after_title) einfügen. Im obigen Beispiel wird jedem Widget-Titel <h2 class="widgettitle"> vorangestellt und danach, um das öffnende Tag zu schließen.

Fügen Sie Ihre neue Seitenleiste zu Ihren Seitenvorlagen hinzu

Nachdem Sie eine Seitenleiste hinzugefügt haben, müssen Sie diese an der gewünschten Stelle in die Seitenvorlage einfügen. Suchen Sie in Ihrer Vorlage (normalerweise), wo die Standard-Sidebar aufgerufen wird, und ersetzen Sie sie durch die folgende, wobei die Nummer der Reihenfolge entspricht, in der die Sidebar in der Datei functions.php hinzugefügt wurde.

<?phpif ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(Sidebar number here) ) : ?><?php endif; ?>

Diese Seitenleiste war die zweite, die in der Datei functions.php hinzugefügt wurde. Um sie in der Seitenvorlage aufzurufen, setzen Sie 2 in !dynamic_sidebar(Put sidebar number here) ).

Widgets hinzufügen

Nachdem Sie es der Seitenvorlage hinzugefügt haben, fügen Sie der Seitenleiste auf der Seite Darstellung -> Widgets-Verwaltung Widgets hinzu. Dort erscheint die neue Seitenleiste mit dem Namen, den Sie in der Datei functions.php angegeben haben.

Hoffe das hilft!

8
Joshua Lynch

Und Widget Logic ist auch eine Option.

3
ZaMoose
  1. Widget Logic ist eine Lösung - auch eine gute.

  2. Mehrere Seitenleisten sind die robustere Lösung, da Sie alle Markups vor/nach _widget in functions.php vollständig anpassen können. Ganz zu schweigen davon, dass Sie eine beliebige Anzahl dieser Seitenleisten erstellen können.

  3. Eine leichtgewichtigere Lösung könnte einfach darin bestehen, die Body-Klasse zu verwenden, um zwischen Seitentypen im CSS zu unterscheiden. Verstecke die Sachen, die du nicht willst, zeige die Sachen an, die du tust. Es ist ein schneller und einfacher Weg, um so etwas zu erreichen.

1
eddiemoya

Eine andere Lösung ist Anzeige-Widgets Plugin. Es fügt ein Dropdown-Menü in jedes Widget ein, das Sie in Ihrer Seitenleiste/Ihren Seitenleisten aktiviert haben, in dem Sie auswählen können, auf welchen Seiten/Posts Sie es anzeigen oder ausblenden möchten.

1
Philip

zwei weitere möglichkeiten: 1. anstatt 'sidebar.php' komplizierter zu machen, füge die neuen Seitenleisten in eine neue Seitenleistendatei 'sidebar-xxx.php' ein und verwende sie dann in der Seitenvorlage

  1. sie können Kontext-Widgets Plugin verwenden
0
hannit cohen