bestimmtes Widget nur für die Startseite – Schritt für Schritt Tutorial
Du verwendest Widgets und magst nur auf der Startseite ein ganz bestimmtes davon haben. Ich zeige hier mehrere Lösungen in einer Schritt für Schritt Anleitung auf.
Du verwendest Widgets und magst aber ein ganz bestimmtes nur auf der Startseite haben. Du findest hier eine Lösung mit dem Widget Logic Plugin und eine Schritt für Schritt Anleitung wie Du Deine Sidebar so umbauen kannst, dass dies auch ohne Plugin möglich ist. Ganz am Schluß gibt es noch Tipps wie dies auch für eine ganz bestimmte Kategorie oder statische Seite funktioniert.
ein bestimmtes Widget nur auf der Startseite nutzen – die Pluginlösung
Du brauchst dafür das Widget Logic Plugin. Dieses Plugin ermöglicht die Verwendung sogenannter Conditonal Tags. Das sind “wenn-dann-sonst” -also Bedingungsabfragen. Magst Du mehr über die Conditional Tags wissen, dann lies diesen Artikel von mir.
- Plugin entpacken.
- In den Ordner wp-content/plugins hochladen und
- Admincenter==>Plugins==>aktivieren.
Jetzt kannst Du bei den Widgets diese Conditional Tags einfügen.
Widget nur auf der Startseite -der Code
<?php if (is_home()) { ?> <?php } ;?>
Widget nur auf der statischen Seite mit der ID 10
<?php if (is_page('10')) { ?> <?php } ;?>
Mehr solche Beispiele findest Du auf der Pluginseite und hier.
Sidebar so herrichten, dass Du Widgets nur auf der Startseite anzeigen kannst
Ich nehm dafür die Sidebar.php des default_de Themes. Damit kann ich es zeigen und ich empfehle übe es mal mit der, da ist nicht viel kaputt, wenn es nicht gleich klappt.
Außerdem brauchst Du einen Texteditor. Niemals MS Word!
Die functions.php des verwendeten Themes braucht man auch.
Sidebar.php für mehrere Widget Abschnitte herrichten
Öffnest Du die sidebar.php mit dem Texteditor siehst Du ganz oben folgendes:
<div id="sidebar"> <ul> <?php /* Widgetized sidebar, if you have the plugin installed. */ if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
Das (1.Punkt )
<?php /* Widgetized sidebar, if you have the plugin installed. */ if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
ist der Beginn eines Widget Abschnitts. Da es nur einer ist in der ganzen Sidebar.php hat er auch keinen Namen. Mag man mehrere Widgetabschnitte haben, muß man diesen einen Namen geben, damit man dann im Admincenter==>Design==>Widgets die einzelnen Abschnitte auch auswählen kann.
Wenn PHP zu arbeiten anfängt mit <?php muß man ihm auch wieder sagen, wann es genug gearbeitet hat, dies findest Du ganz am Ende der sidebar.php und sieht so aus.
<?php endif; ?> </ul> </div>
Alles dazwischen braucht man nur, wenn man keine Widgets verwendet, also kann man es in unserem Beispiel auch weglassen.
Widget Abschnitte einen Namen geben
Mit folgendem Code überschreibst Du den Code der unter (1. Punkt) angegeben ist. Dies sagt WP:Da ist ein Widget Abschnitt mit dem Namen Startseite.
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar('Startseite') ) : else : ?>
Nach dem 1. <php endif…. fügst Du den Widget Abschnitt Blogwide ein.
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar('Blogwide') ) : else : ?> <?php endif;?>
Jetzt hast Du die Abschnitte aber WP weiß noch nicht wann es was anzeigen darf. Da müssen jetzt wieder die Conditional Tags herhalten.
<?php if (is_home()) { ?> <?php } ;?>
Das gehört um den Widget Abschnitt Startseite. Sieht also schlussendlich so aus.
<?php if (is_home()) { ?> <?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar('Startseite') ) : else : ?> <?php endif;?> <?php } ;?>
Widgets in der functions.php angeben.
Öffne die functions.php des default_de Themes und ändere
if ( function_exists('register_sidebar') ) register_sidebar(array( 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>', ));
so ab:
if ( function_exists('register_sidebar') ) register_sidebar(array( 'name' => 'Startseite', 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>', )); if ( function_exists('register_sidebar') ) register_sidebar(array( 'name' => 'logwide', 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>', ));
Alles hochladen in den Themeordner. Admincenter==>Design==>Widgets dort kannst Du jetzt auf der rechten Seite unter “Momentane Widgets” die einzelnen Abschnitte auswählen und jene Widgets aktivieren, die Du magst.
Widgets pro Kategorie – geht das auch?
Ja, dann machst Du eben einen 3. Widget Abschnitt in der Sidebar und vergibst einen neuen Namen und änderst auch die functions.php wie oben erklärt.
Bei Fragen einfach fragen
und wenn es geholfen hat, freu ich mich über einen Link oder übers Weitersagen.

Nette Anleitung, leider muss man dazu recht viel im Theme anpassen
Bei meinem Plugin/Wiget (Galery Widget) hab ich zumindest die Option “is_home()” oder auf allen Seiten aus Auswahlmöglichkeit eingebaut, vll. sollte ich das auch noch n bisserl erweitern.
Olli28.08.08 12:54 | # |
Hi Olli es zahlt sich sicher aus,
manches gleich in der Sidebar und manches anders,machts auch interessanter Dein Blog
erweckt mehr Aufmerksamkeit – ist man damit sparsam, dannverwirrts auch nicht
toi toi
lg
texto28.08.08 13:25 | # |
Klasse ist dieses Tutorial für user die eine eigene Personifizierte Desktop Startseite haben.. Hat mir sehr geholfen Herr Doktor
und das ganz ohne Rezept.
Single aus Bochum08.06.09 16:19 | # |
Meine Widget werden nur in der Startseite angezeigt und auf den Unterseiten garnicht. Welchen Code brauche ich dafür? Oder stimmt etwas nicht mit meiner sidebar.php?
Katrin11.10.09 21:44 | # |
vermutlich steht in der sidebar.php irgendwas drin *if is_home*
das kann sein, lösch das raus und auch das dazugehörende Endstück
wenn Du das falsch machst, sagt es Dir php gleich beim Aufrufen Deiner Seite,
vorher die Original sidebar.php sichern
lg
texto11.10.09 22:21 | # |
Eine interessante Anleitung.
Habe heute die Seite so in der page.php konfiguriert, dass diese nicht auf statischen Seiten erscheinen (z.B. “eine Seite”).
Das machte ich in der Hoffnung, dass dann der Inhalt der statischen Seiten über die ganze Templatebreite läuft. Tut er aber nicht. Der Inhalt ist genauso breit, als ob die Sidebar vorhanden wäre, nur eben ohne sichtbare Widgets.
Bevor ich mich ans Werk mache.
Wäre mit obiger Anleitung das Problem gelöst?
Liebe Grüße
Roland07.01.10 19:43 | # |
nein, das Problem liegt in der style.css, da ist 1. der Inhalt sicher so breit, dass die Sidebar daneben Platz hätte,
d.h. Du müßtest eine andere css Klasse nehmen für diese Seite und die Sidebar unten nicht einfügen ..
texto07.01.10 21:48 | # |
Danke für die schnelle Info.
Dann weiß ich, wo ich ansetzen muß.
Roland08.01.10 11:00 | # |
das nenn ich mal eine übersichtliche Anleitung!
vielen dank von wp- und php-neuling!
gruß
Karl08.01.10 19:32 | # |
sehr gute anleitung, wie schaffe ich es das ein widget überall außer auf der startseite angezeigt wird? ich habe es mit !is_page(‘home’)
versucht, aber das widget wird trotzdem auf der startseite angezeigt
Florian10.03.10 10:20 | # |
Und wenn ich jetzt pro Seite ein anderes Widget anzeigen will? Mein Problem ist das folgende: Über die Hauptnavigation (Oben) wählt der User den Link an. Nun soll pro Seite jeweils links eine Subnavigation angezeigt werden. Wie kann ich das denn mit diesem Plugin so lösen?
zyclop04.08.10 12:18 | # |
hi zyklop dann hol dir das Plugin widget logic -das kann das – also es ermöglicht dir pro Seite was anders anzuzeigen,
lg
texto04.08.10 13:29 | # |
Ja das habe ich gemacht. Dann füge ich bei den Widget ein individuelles Menu ein. Aber wo muss ich was einfügen? Ich habe zwar ein Feld Widget Logic aber was muss ich da wie eingeben?
Sorry aber heute ist der “Ichstellmichdummtag” ich checks einfach nicht.
zyclop04.08.10 13:41 | # |
sagen wir deine eine Seite hat den URLs SLug *email*
der URL SLug ist der letzte Teil der Internetadresse
deinedomain.tld/email/ als Beispiel.
dann schreibst du in das Feld widget logic
brauchst du da mehr an INFO, dann sieh dir die Plugin Homepage an oder suche nach *conditional comments wordpress * via Google
texto04.08.10 14:49 | # |
Ja habe es soeben auch geschafft aber anders. und zwar so –> !is_page(‘home’) && !is_page(‘dienstleistungen’) && !is_page(‘uber uns’) && !is_page(‘Kontakte’)
Anstatt das ich einfach das ! rausnehme. Danke nochmals
zyclop04.08.10 14:53 | # |
gerne zyclop – das ! bedeutet *nicht*
also !is_page heißt-wenn nicht die Seite …
viel Freud mit Deiner Seite!
texto04.08.10 17:09 | # |