Sidebar
ein-/ausblenden

Aktive Widget-Bereiche abfragen

Plugin für WordPress SEO

Anzeige

WP Adventskalender 07
Wer im Theme Widgets nutzt und dazu noch diverse Hierarchien unterbringt, der wird schnell merken, dass es eigentlich nur dann Sinn macht, das HTML zu dem jeweiligen Bereich auszugeben, wenn der Widget-Bereich auch vom User genutzt wird, wenn also Widgets im Bereich abgelegt sind.

Diesem Thema haben sie die Entwickler des Theme-Framework Thematic schon seit langer Zeit angenommen und die Lösung ist ebenso interessant für Autoren, die ihr Theme ohne dieses Framework erstellen.
Dazu genügt eine Funktion, die den bekannten Conditional Tags von WordPress gleich kommt. Diese Funktion wird in der functions.php des Themes abgelegt.


function is_sidebar_active($index) {
	global $wp_registered_sidebars;

	$widgetcolums = wp_get_sidebars_widgets();

	if ($widgetcolums[$index])
		return true;

	return false;
}

Damit wird die Ausgabe des Widget-Bereiches nur genutzt, wenn es auch Inhalte gibt.
Im Template könnte die Abfrage beispielsweise wie folgt aussehen.


<?php if ( function_exists('is_sidebar_active') && is_sidebar_active('sidebar') ) { ?>
	<div id="sidebar">
		<ul>
			<?php dynamic_sidebar('sidebar'); ?>
		</ul>
	</div>
<?php } ?>

Das obige Beispiel lädt den Inhalt nur, wenn der Widget-Bereich mit der ID sidebar Inhalte hat, also wenn Widgets in diesem Bereich genutzt werden.

Seit WordPress Version 2.8 gibt es dazu auch eine Funktion im Core und man muss die obige Funktion nicht eigens hinzu bringen is_active_sidebar(). Damit geht die Prüfung ebenso einfach und sicher.


<?php if ( function_exists('is_active_sidebar') && is_active_sidebar('sidebar') ) { ?>
	<div id="sidebar">
		<ul>
			<?php dynamic_sidebar('sidebar'); ?>
		</ul>
	</div>
<?php } ?>

1 Kommentar zu „Aktive Widget-Bereiche abfragen“

  1. 1
    Kommentar von Steffen

    Was ich bisher für Probleme mit der Sitebar und den Widgets hatte, vorallem beim einfügen in ein Thema das gar keine Sidebar hatte... aber geht alles wenn man will. Danke für den Tipp.

Kommentar schreiben

Kommentarregeln: Bleib cool, kritisch ist in Ordnung, aber wenn du unhöflich bist, dann lösche ich deinen Kommentar. Bitte benutze deinen persönlichen Namen oder Initialen und nicht den Namen eines Unternehmens, dies würde als Spam gewertet und wird gelöscht. Der Zusammenhang zwischen Namen und URL sollte nicht offensichtlich auf Spam hindeuten! ♥ Ansonsten, vielen Dank für den Kommentar und viel Spaß mit meinem Blog.

E-Mail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

Kommentar-Hilfe

händischer Spam:
Beachte die Kommentarregeln, jede Form von versuchtem Spam wird gelöscht. Warum und wieso steht in einem meiner Beiträge.

Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.

xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>

Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als &lt; und > als &gt; einfügt.

E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.

Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.

Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.

Spamschutz:
Das Kommentarformular ist mit einem Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.