Widgets programmatisch ausblenden und anzeigen

Um ein spezifisches Widget auf bestimmten Seiten oder unter spezifischen Bedingungen auszublenden, können Sie sich auf ein Plugin wie Widget Logic oder Widget Options verlassen. Alternativ können Sie das gleiche Ergebnis mit einigen Zeilen Code erzielen:

add_filter('sidebars_widgets', 'sw_conditionally_remove_widget');

function sw_conditionally_remove_widget($sidebars_widgets)
{
	if (is_admin()) {
		return $sidebars_widgets;
	}

	if (!is_front_page() && !is_archive()) {
		foreach ($sidebars_widgets as $widget_area => $widget_list) {
			foreach ($widget_list as $pos => $widget_id) {
				if ($widget_id == 'text-3') {
					unset($sidebars_widgets[$widget_area][$pos]);
				}
			}
		}
	}

	return $sidebars_widgets;
}

Im obigen Beispiel wird das Widget mit der ID text-3 von der Startseite entfernt. Die Widget-ID entspricht der CSS-ID des Widgets im Frontend. Sie müssen die ID und die Bedingung entsprechend Ihren speziellen Anforderungen anpassen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert