Sidebar
ein-/ausblenden

WordPress Standard Widgets deaktivieren

Plugin für WordPress SEO

Anzeige

Nicht immer möchte man alle Widgets, die der WordPress Core so mitbringt, im Theme aktiv haben. Das haben sich auch die Entwickler von WordPress gedacht und eine entsprechende Funktion mitgeliefert anstatt die Widgets in ein Plugin, gern auch als Core Plugin, ausgelagert.

Für Theme-Autoren bleibt nur der Weg, in die functions.php des Themes eine kleine Funktion abzulegen, die die Widgets, welche man nicht mag, deaktiviert. Der folgende Syntax schaltet alle Standard-Widgets ab. Er sollte daher angepasst werden, je nach Anforderung.


// unregister all default WP Widgets
function unregister_default_wp_widgets() {

	unregister_widget('WP_Widget_Pages');

	unregister_widget('WP_Widget_Calendar');

	unregister_widget('WP_Widget_Archives');

	unregister_widget('WP_Widget_Links');

	unregister_widget('WP_Widget_Meta');

	unregister_widget('WP_Widget_Search');

	unregister_widget('WP_Widget_Text');

	unregister_widget('WP_Widget_Categories');

	unregister_widget('WP_Widget_Recent_Posts');

	unregister_widget('WP_Widget_Recent_Comments');

	unregister_widget('WP_Widget_RSS');

	unregister_widget('WP_Widget_Tag_Cloud');
}

add_action('widgets_init', 'unregister_default_wp_widgets', 1);

Die Funktion unregister_widget() benötigt als Parameter die Übergabe der Klasse, damit ist der Code hier nur ab Version 2.8 nutzbar, im Vorfeld wurden Widgets anders unterstützt.

Wie man eigene Widgets ab WordPress Version 2.8 erstellt, kann man beispielsweise im Beitrag WordPress 2.8 Widget erstellen von Micha nachlesen.

19 Kommentare zu „WordPress Standard Widgets deaktivieren“

  1. 1
    Kommentar von Thomas Scholz

    Welchen Vorteil gewinnt man denn damit? Die Widgetseite im Backend wird vielleicht etwas übersichtlicher … aber sonst?

  2. 2
    Kommentar von juliaL49

    Wunderbar! Jetzt sieht es viel aufgeräumter aus, da ich bis auf das Textwidget keine WP-eigenen Widgets nutze, stören die Standarddinger doch ungemein.

  3. 3
    Kommentar von Frank Bültge

    @Thomas: was gerade bei Kundenanwendungen, wo ich zig Bereiche definiere und nur eigene Widgets zulasse, keine Fragen entstehen, da die nicht zu nutzenden Widgest einfach nicht da sind. Im weiteren gewinnt man Übersicht.

  4. 4
    Kommentar von Sascha

    Ich setze eine ganze Reihe von Widgets ein und bin über eine solche Möglichkeit sehr froh. So kann man sich vom unnötigen Müll ohne weiteres trennen. Danke für die Anleitung!

  5. 5
    Kommentar von Jan

    Danke für den coolen Tipp!
    Sorry, wegen der Anfängerfrage: Wo genau muss man denn den Schnipsel in der functions.php einbinden? Bislang zeigt mein Blog nämlich noch nicht das gewünschte Resultat...

  6. 6
    Kommentar von Frank Bültge

    egal wo, es muss nur in der functions.php des aktiven Themes sein. Die PHP Schlüssel nicht vergessen, wenn es die Datei nicht gab oder leer ist: <?php ?>

  7. 7
    Kommentar von marco

    ok, die funktion ist in functions.php eingebaut....
    wo muss ich die "add_action..." einfügen?! kenne mich noch net so doll aus..
    danke

  8. 8
    Kommentar von Frank Bültge

    @marco: alles in die functions.php, der Aufruf wird aus der Datei raus gestartet.

  9. 9
    Kommentar von marco

    wer lesen kann....:-)

    hab jetzt alles komplett unten in die functions.php des themes eingefügt (z.b. in das standard-theme).....aber widgets wie kategorien oder archiv werden trotzdem noch angezeigt?! wo ist noch der haken?

    danke

  10. 10
    Kommentar von FuNKeR

    wer lesen kann....:-)
    hab jetzt alles komplett unten in die functions.php des themes eingefügt (z.b. in das standard-theme).....aber widgets wie kategorien oder archiv werden trotzdem noch angezeigt?! wo ist noch der haken?
    danke

    Das liegt wohl am verwendeten Theme. Es gibt diverse Themes, die eine Art Fallback eingebaut haben, wenn die dynamische Sidebar - also die, wo die Widgets landen - deaktiviert ist oder keine Widgets angezeigt werden.

    Guck am besten mal in die sidebar.php. Dort ist sicher einiges eingetragen, was im Falle deaktivierter Widgets angezeigt wird.

  11. 11
    Kommentar von Frank Bültge

    @marco: in meinem Tutorial habe ich lediglich die Standard-Widgets benannt, jedes Theme kann wieder eigene Widgets mitbringen die in der Regel in der functions.php des Themes zu finden sind. Man kann auch diese Deaktivieren. Alternativ kannst du ja den ganzen Punkt Widgets mit einem Plugin deaktivieren, zum Beispiel Adminimize oder Member.http://bueltge.de/wp-admin/edit-comments.php#comments-form

  12. 12
    Kommentar von marco

    danke für die hilfe!!
    habs jetzt mal mit auskommentieren in der sidebar.php probiert....geht einwandfrei.

    hab auch mal deinen adminimizer installiert...HILFE: es sind unter widgets keine mehr zur verfügung ausser die von NextGen...ahh

  13. 13
    Kommentar von Frank Bültge

    @marco: nextgen kann ebenso gefiltert werden, dazu muss die ID bekannt sein, die man wieder nur im Plugin von Nextgen findet. Daher via Adminimize den Menu-Punkt Widget entfernen und schon ist der Zugriff nicht mehr sichtbar.

  14. 14
    Kommentar von marco

    ich denke ich fahre am besten in dem ich den entsprechenden teil im code einfach auskommentiere. dann erscheint er auf der seite nicht mehr. das is es ja was ich will..also die core widgets auf der seite ausschalten.

  15. 15
    Kommentar von Frank Bültge

    Wenn du aber die Widgets in der Sidebar ausschaltest, dann sind es keine Core-Widgets. Mir scheint, hier liegt ein Verständnisproblem vor. Du scheinst einfach im Theme, im Frontend deines Blog diverse Inhalte weg haben zu wollen. Der obige Code zeigt, wie man die Widgets im Admin-Bereich nicht aktiv hat, so dass man sie nicht in den Sidebar holen kann.

  16. 16
    Kommentar von marco

    richtig! das frontend ist gemeint... ;-)
    und zwar dort die core-widgets...
    und die funktion von dir in der theme functions.php läuft leider nicht....alles drin, code läuft durch aber widgets sind trotzdem da (standard theme)

  17. 17
    Kommentar von marco

    gibt es oder hast du einen ansatz, dass ich im backend eine variable true/false setzen kann und sie im theme einfach abfrage?! dann kann man sich selber nen "schalter" für bestimmte teile der seite bauen...
    müsste doch gehen.

    danke, gruß

  18. 18
    Kommentar von Frank Bültge

    @marce: ich kann die Anforderung nicht verstehen. Ich denke noch immer, dass du was vermischt. Meine obige Funktion sorgt dafür, dass die Standard-WordPress-Widgets nicht im backend zur Verfügung stehen, damit kann man sie aber trotzdem im Theme nutzen, also im Forntend einbinden. Das sind zwei paar Schuhe.

  19. 19
    Kommentar von Mika

    Super Artikel werde es versuchen gleich umzusetzen.

Kommentare sind geschlossen.