WordPress: jak wyrejstrować domyślne widgety?

W kilku wdrożeniach nie używam prawie żadnego ze standardowych widgetów w jakie wyposażony jest WordPress, zastępując ich funkcjonalność, bądź zwyczajnie ich nie wykorzystując.

Na pewnej dużej witrynie wykorzystującej naprawdę sporo różnego rodzaju dodatków na ekranie „Widgety” panował straszliwy wręcz chaos. Mnóstwo używanych i nie używanych, instancje już nie używane, podobne nazwy.

W całym tym gąszczu co i raz łapałem standardowe widgety, których o zgrozo, wcale nie chciałem użyć.

Okazało się, że bez kłopotu można je wyłączyć, co umożliwia poniższy kod.

/**
 * unregister standard widgets
 */
function iworks_unregister_widgets()
{
    $standard_widgets = array
        (
            'Pages',
            'Calendar',
            'Archives',
            'Links',
            'Meta',
            'Search',
            'Text',
            'Categories',
            'Recent_Posts',
            'Recent_Comments',
            'RSS',
            'Tag_Cloud',
        );
    foreach ( $standard_widgets as $widget_class ) {
        unregister_widget( 'WP_Widget_'.$widget_class );
    }
}
add_action('widgets_init', 'iworks_unregister_widgets');
[zip href="http://iworks.pl/wp-content/uploads/2011/03/iworks_unregister_widget.php.zip"]iworks_unregister_widget.php.zip[/zip]

Jak użyć podany kod?

Masz 3 rozwiązania:

  1. wrzuć załączony plik do folderu wp-content/plugins, a potem włącz wtyczkę
  2. wrzuć załączony plik do folderu wp-content/mu-plugins
  3. dołącz kod do pliku functions.php aktualnie używanego motywu

Poprzedni

WordPress: filtrowanie w panelu listy postów

Następne

WPML stał się komercyjną wtyczką

7 komentarzy

  1. szkwiat

    no OK. Ale gdzie to wkleić? zielony jestem. prosze…
    daj helpa.

  2. Kod należy wkleić do pliku functions.php

  3. Łukasz

    A mam takie pytanie. chciałem obok nazw widgetow umiescic obrazek i nie moge dojsc w jakim pliku są przechowywane widgety (standardowe)

  4. Standardowe widgety są tutaj:

    wp-includes/widgets.php

    ale modyfikacji plików „core’a” to bym odradzał.

  5. Michał

    @Łukasz: jeżeli sprawa jest jeszcze nierozwiązana – możesz to załatwić przez css. Musisz dowiedzieć się, jak są wyróżnione tytuły widgetów w motywie, którego używasz (np. tu na tej stronie są to tagi h3 z klasą „box-title”) i odpowiednio je ostylować, np.: {background: url(sciezka/obrazek.jpg) no-repeat left top;}, ewentualnie jeszcze padding, jeśli obrazek byłby z lewej strony tekstu tytułu.

  6. Iwona

    Czy w jakieś konkretne miejsce w pliku functions mam wkleić ten kod? Czy usunąć to co jest tam już napisane o tych widgetach?
    Pierwszy raz robię stronę i się zupełnie nie znam :(
    proszę o pomoc

    • @Iwona: dodałem do wpisu trzy opcje użycia podanego kodu.

      W żadnym wypadku nie usuwaj tego co tam już jest, bo to jest kod związany z działaniem Twojego motywu.

      Dodaj np. na końcu, bo tak jest najbezpieczniej.

Oparte na WordPress & Theme by Anders Norén