Zaufane samouczki WordPress, kiedy ich najbardziej potrzebujesz.
Przewodnik dla początkujących po WordPressie
WPB Cup
25 milionów+
Witryny korzystające z naszych wtyczek
16+
Lata doświadczenia z WordPressem
3000+
Samouczki WordPress od ekspertów

Jak stworzyć niestandardowy widżet WordPress (krok po kroku)

Widżety pozwalają dodawać elementy niebędące treścią do paska bocznego lub dowolnego obszaru gotowego na widżety na Twojej stronie WordPress. Możesz ich używać do dodawania banerów, reklam, formularzy zapisu na newsletter i innych elementów do swojej witryny.

Możesz również stworzyć niestandardowy widżet, aby osadzić unikalne funkcje z osobistym akcentem, takie jak kanały mediów społecznościowych, najnowsze posty lub tagi HTML.

W WPBeginner używamy niestandardowych widżetów do wyświetlania różnych typów treści w pasku bocznym naszej strony internetowej. W tym artykule pokażemy, jak krok po kroku utworzyć niestandardowy widżet WordPress.

Jak stworzyć niestandardowy widżet WordPress (krok po kroku)

Uwaga: Ten samouczek jest przeznaczony dla użytkowników WordPressa typu „zrób to sam”, którzy uczą się tworzenia i kodowania w WordPressie.

Czym jest widżet WordPress?

Widżety WordPress zawierają fragmenty kodu, które można dodać do pasków bocznych lub obszarów gotowych na widżety na Twojej stronie internetowej.

Pomyśl o nich jak o modułach, których możesz użyć do dodania różnych elementów i funkcji do swojej witryny.

Domyślnie WordPress zawiera standardowy zestaw widżetów, których można używać z dowolnym motywem WordPress. Więcej szczegółów znajdziesz w naszym przewodniku dla początkujących, jak dodawać i używać widżetów w WordPress.

Sekcja widżetów WordPress

WordPress pozwala również programistom tworzyć własne niestandardowe widżety.

Wiele premium motywów WordPress i wtyczek zawiera własne niestandardowe widżety, które można dodać do swoich pasków bocznych.

Na przykład, możesz dodać formularz kontaktowy, niestandardowy formularz logowania, galerię zdjęć, formularz zapisu na listę e-mailową i wiele więcej do paska bocznego bez pisania kodu.

Mając to na uwadze, zobaczmy, jak łatwo możesz stworzyć własne niestandardowe widżety w WordPressie.

Zanim stworzysz niestandardowy widżet w WordPressie

Jeśli uczysz się kodowania w WordPress, będziesz potrzebować lokalnego środowiska programistycznego. Daje Ci to swobodę nauki i testowania rzeczy bez obawy, że Twoja witryna będzie na żywo.

Możesz zainstalować WordPress lokalnie na Macu za pomocą MAMP lub Windows za pomocą WAMP.

Jeśli masz już działającą stronę, możesz przenieść ją na lokalny serwer. Więcej informacji znajdziesz w naszym przewodniku jak przenieść działającą stronę WordPress na lokalny serwer.

Po tym jest kilka sposobów na dodanie kodu niestandardowego widżetu w WordPress.

W idealnej sytuacji możesz utworzyć wtyczkę specyficzną dla witryny i wkleić tam swój kod widżetu. Pozwala to na dodawanie kodu do WordPress, który nie jest zależny od Twojego motywu WordPress.

Możesz również wkleić kod do pliku functions.php swojego motywu. Będzie on jednak dostępny tylko wtedy, gdy aktywny będzie ten konkretny motyw.

Innym narzędziem, którego możesz użyć, jest wtyczka WPCode, która pozwala łatwo dodawać niestandardowy kod do Twojej witryny.

W tym samouczku stworzymy prosty widżet, który po prostu wita odwiedzających. Celem jest zapoznanie się z klasą widżetu WordPress.

Gotowi? Zacznijmy.

Tworzenie podstawowego widżetu WordPress

WordPress zawiera wbudowaną klasę widżetów WordPress. Każdy nowy widżet WordPress rozszerza klasę widżetów WordPress.

W podręczniku dla deweloperów WordPress wymieniono 19 metod, które można zastosować z klasą WP Widget.

Jednak na potrzeby tego tutorialu skupimy się na następujących metodach.

  • __construct() : To jest część, w której tworzymy identyfikator widżetu, tytuł i opis.
  • widżet: Tutaj definiujemy dane wyjściowe generowane przez widżet.
  • formularz: Ta część kodu jest miejscem, w którym tworzymy formularz z opcjami widżetów dla backendu.
  • aktualizacja: To jest część, w której zapisujemy opcje widżetu w bazie danych.

Aby utworzyć niestandardowy widżet, możesz skopiować i wkleić poniższy fragment kodu do swojego pliku functions.php lub w WPCode (zalecane):

<?php

// Creating the widget
class wpb_widget extends WP_Widget {
	function __construct() {
		parent::__construct(
		// Base ID of your widget
			'wpb_widget',

			// Widget name will appear in UI
			__( 'WPBeginner Widget', 'textdomain' ),

			// Widget description
			[
				'description' => __( 'Sample widget based on WPBeginner Tutorial', 'textdomain' ),
			]
		);
	}

	// Creating widget front-end
	public function widget( $args, $instance ) {
		$title = apply_filters( 'widget_title', $instance['title'] );

		// before and after widget arguments are defined by themes
		echo $args['before_widget'];
		if ( ! empty( $title ) ) {
			echo $args['before_title'] . $title . $args['after_title'];
		}

		// This is where you run the code and display the output
		echo __( 'Hello, World!', 'textdomain' );
		echo $args['after_widget'];
	}

	// Widget Settings Form
	public function form( $instance ) {
		if ( isset( $instance['title'] ) ) {
			$title = $instance['title'];
		} else {
			$title = __( 'New title', 'textdomain' );
		}

		// Widget admin form
		?>
        <p>
            <label for="<?php echo $this->get_field_id( 'title' ); ?>">
				<?php _e( 'Title:', 'textdomain' ); ?>
            </label>
            <input
                    class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
                    name="<?php echo $this->get_field_name( 'title' ); ?>"
                    type="text"
                    value="<?php echo esc_attr( $title ); ?>"
            />
        </p>
		<?php
	}

	// Updating widget replacing old instances with new
	public function update( $new_instance, $old_instance ) {
		$instance          = array();
		$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';

		return $instance;
	}

	// Class wpb_widget ends here
}

// Register and load the widget
function wpb_load_widget() {
	register_widget( 'wpb_widget' );
}

add_action( 'widgets_init', 'wpb_load_widget' );

Najprostszym sposobem dodawania niestandardowego kodu do witryny WordPress jest użycie WPCode. Jest to najlepsza wtyczka do fragmentów kodu, która pomaga zarządzać i wstawiać fragmenty kodu na Twojej stronie bez ryzyka jej uszkodzenia.

Najpierw musisz zainstalować i aktywować wtyczkę WPCode na swojej stronie. Jeśli potrzebujesz pomocy, zapoznaj się z naszym przewodnikiem, jak zainstalować wtyczkę WordPress.

Po aktywacji przejdź do Fragmenty kodu » + Dodaj fragment z panelu administracyjnego WordPress. Stąd wybierz opcję „Dodaj własny kod (nowy fragment)”.

Dodaj nowy fragment

Następnie możesz wkleić niestandardowy kod widżetu w obszarze Podgląd kodu.

Musisz również kliknąć menu rozwijane „Typ kodu” i wybrać opcję „Fragment PHP”.

Wprowadź niestandardowy kod widżetu

Następnie możesz przewinąć w dół i wybrać metodę wstawiania dla swojego kodu.

WPCode pozwala wybrać, gdzie kod ma być uruchamiany. W tym samouczku możesz użyć domyślnych opcji i uruchomić go wszędzie.

Metoda wstawiania w WPCode

Po zakończeniu możesz przewinąć do góry, aby zapisać fragment.

Aby aktywować fragment, po prostu kliknij przełącznik na „Aktywny”.

Aktywuj i zapisz fragment w WPCode

Aby dowiedzieć się więcej, zapoznaj się z naszym przewodnikiem na temat jak dodać niestandardowy kod do witryny WordPress.

Po dodaniu kodu do WordPressa musisz przejść do strony Wygląd » Widżety w swoim panelu administracyjnym WordPressa.

Następnie kliknij ikonę „Plus” dodaj blok, wyszukaj „Widżet WPBeginner” i wybierz nowy widżet.

Dodaj widżet WPBeginner

Ten widżet ma tylko jedno pole formularza do wypełnienia.

Możesz dodać swój tekst i kliknąć przycisk „Zaktualizuj”, aby zapisać zmiany.

Dodaj tekst do widżetu i zapisz

Teraz możesz odwiedzić swoją stronę WordPress, aby zobaczyć niestandardowy widżet w akcji.

Oto przykład, jak to wygląda na naszej stronie demonstracyjnej.

Przykład nowego niestandardowego widżetu

Dodawanie niestandardowego widżetu w klasycznym edytorze WordPress

Jeśli używasz klasycznego edytora widżetów do dodawania nowych widżetów do swojej witryny, proces będzie podobny.

Na liście dostępnych widżetów pojawi się nowy widżet o nazwie „Widżet WPBeginner”. Musisz przeciągnąć i upuścić ten widżet do swojego paska bocznego.

Następnie wprowadź tytuł i kliknij „Zapisz”, aby zapisać ustawienia widżetu. 

Dodaj widżet w klasycznym edytorze WordPress

Twój nowy niestandardowy widżet będzie teraz aktywny na Twojej stronie internetowej.

Teraz przestudiujmy kod ponownie.

Najpierw zarejestrowaliśmy „wpb_widget” i załadowaliśmy nasz niestandardowy widżet. Następnie zdefiniowaliśmy, co ten widżet robi i jak wyświetlić jego zaplecze.

Na koniec zdefiniowaliśmy, jak obsługiwać zmiany dokonane w widżecie.

Teraz jest kilka rzeczy, o które możesz chcieć zapytać. Na przykład, jaki jest cel textdomain?

WordPress używa „gettext” do obsługi tłumaczeń i lokalizacji. Ten textdomain i _e informuje „gettext”, aby udostępnić ciąg znaków do tłumaczenia. Aby dowiedzieć się więcej, zapoznaj się z naszym przewodnikiem na temat jak znaleźć gotowe do tłumaczenia motywy WordPress.

Jeśli tworzysz niestandardowy widżet dla swojego motywu, możesz zastąpić textdomain domeną tekstową swojego motywu.

Alternatywnie możesz użyć wtyczki do tłumaczenia WordPress, aby łatwo tłumaczyć WordPress i tworzyć wielojęzyczną witrynę WordPress.

Bonus: Dodaj niestandardowe style do swoich widżetów WordPress

Po utworzeniu widżetu WordPress możesz również dodać do niego niestandardowe style. Może to poprawić wygląd Twojej witryny, zachować spójność i zwrócić uwagę na ważne informacje.

Aby to zrobić, odwiedź stronę Wygląd » Widżety i dodaj widżet, który chcesz dostosować. Zobaczysz teraz opcje zmiany jego kolorów i typografii w panelu bloków po prawej stronie.

Domyślne opcje stylizacji widżetów WordPress

Jednakże, jeśli widżet nie wyświetla tej opcji, możesz go dostosować, dodając klasy CSS po rozwinięciu zakładki „Zaawansowane”.

Teraz możesz dodać niestandardową klasę CSS do swojego motywu WordPress, która będzie docelować tę konkretną klasę CSS.

Dodawanie niestandardowej klasy CSS do widżetów w Edytorze bloków

W tym celu przejdź do strony Wygląd » Dostosuj i przełącz się na zakładkę Dodatkowy CSS. Zobaczysz tutaj podgląd swojej witryny z polem do dodawania reguł CSS.

Możesz teraz używać niestandardowego CSS do dostosowywania wyglądu swojego widżetu. Szczegółowe informacje znajdziesz w naszym poradniku jak dodać niestandardowe style do widżetów WordPress.

Dodaj reguły CSS

Mamy nadzieję, że ten artykuł pomógł Ci dowiedzieć się, jak łatwo tworzyć niestandardowe widżety WordPress. Możesz również zapoznać się z naszym przewodnikiem na temat jak wyłączyć bloki widżetów w WordPress oraz naszym poradnikiem na temat jak usunąć nieaktywne widżety w WordPress.

Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube po samouczki wideo WordPress. Możesz nas również znaleźć na Twitterze i Facebooku.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz w niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak finansowany jest WPBeginner, dlaczego to ważne i jak możesz nas wesprzeć. Oto nasz proces redakcyjny.

Ostateczny zestaw narzędzi WordPress

Uzyskaj BEZPŁATNY dostęp do naszego zestawu narzędzi – kolekcji produktów i zasobów związanych z WordPress, które powinien mieć każdy profesjonalista!

Interakcje czytelników

30 CommentsLeave a Reply

  1. Ciąg znaków „wpb_text_domain” nie został znaleziony w przykładowym kodzie. Zgaduję, że przykładowy kod został zaktualizowany, a treść artykułu nie?

    Aby potwierdzić, czy „wpb_text_domain” to faktycznie „web_widget_domain” z przykładowego kodu?

    Z góry dziękuję za wszelkie opinie.

    • Dziękujemy za zwrócenie na to uwagi, zaktualizujemy ten artykuł i wyjaśnimy to lepiej i uczynimy to jasnym.

      Admin

  2. Dziękuję za świetny tutorial. Dodałem kod do mojego wtyczki testowej i działa idealnie zgodnie z opisem – widzę widżet na liście Wygląd » Widżety i mogę go dodać do paska bocznego.
    Ale nie widzę nowego widżetu na liście edytora strony. Czy czegoś brakuje, czy potrzebna jest inna rejestracja lub ustawienia?
    Dziękuję jeszcze raz za pomoc.

  3. Jest to teraz wyświetlane jako „Starszy widżet” w WordPress. Czy istnieje nowy sposób tworzenia widżetów?

  4. to jest świetne, prosty przykład kopiuj-wklej był dokładnie tym, czego szukałem. Dzięki!

  5. Stworzyłem wtyczkę CRUD i muszę jej użyć na jednej stronie, czy możesz mi pomóc, jak użyć tej wtyczki na stronie?

    • Zależałoby to od sposobu skonfigurowania wtyczki; aby mieć ją na jednej stronie, można by użyć krótkiego kodu do wyświetlania na froncie lub przyjrzeć się API opcji, jeśli chcesz wyświetlić ją po stronie administracyjnej witryny.

      Admin

  6. Jak mogę utworzyć więcej niż 1 niestandardowy widżet?
    A także, jak mogę ustawić inne pola, takie jak radio, pole wyboru, rozwijane, tekst w widżecie?

    • Musiałbyś zastąpić wpb_widget tym, jak chcesz nazwać swój nowy widżet, a następnie kod zależałby od tego, co konkretnie chciałbyś dodać. Jeśli spojrzysz do repozytorium kodu WordPress, możesz zobaczyć dostępne różne kody.

      Admin

  7. Witaj!

    Obecnie tworzę wtyczkę i potrzebuję stworzyć widżet, który pozwoli użytkownikowi dodać określoną funkcjonalność do swojej strony.
    Skopiowałem kod twojego widżetu do pliku i zapisałem go w katalogu mojej wtyczki. Użyłem add_action i do_action w głównym pliku mojej wtyczki, aby go załadować, ale nadal nie działa. Czy możesz mi pomóc?

    Dziękuję!

    • Niestety, zależałoby to w dużej mierze od sposobu konfiguracji wtyczki. Możesz chcieć upewnić się, że obie sekcje tego kodu są ładowane, aby widżet mógł zostać dodany i wyświetlony.

      Admin

  8. Krótkie pytanie, co jeśli chcę tworzyć widżety, w których mogę umieszczać inne widżety? Na przykład puste kolumny bootstrap 6-3-3, a w każdej kolumnie mogę umieszczać widżety, takie jak obraz, tekst, najnowsze posty itp.

    Czy istnieje polecenie / słowo kluczowe, które sygnalizuje, że w tym widżecie jest miejsce na inne widżety...

    ponieważ jestem trochę zdezorientowany moim własnym motywem i tym, jak działa WP... widzisz, jestem początkujący ^^

    Umieściłem już ogólne informacje, takie jak tytuł strony, obszary widżetów w moim stopce, dzięki czemu mogę umieszczać tam menu, powiązane linki itp. Działało.

    Ale teraz jestem zdezorientowany, jak mogę zrealizować moje treści w WordPressie tak, jak zaprojektowałem je wcześniej. Może jakieś słowa kluczowe pomogą mi dowiedzieć się więcej na ich temat.

  9. Jak pobrać pole niestandardowego typu posta z bazy danych WordPress i użyć widżetu do wyświetlenia go na stronie głównej?

  10. Nie mogę dodać dwóch niestandardowych widżetów.. drugi widżet się nie pojawia....
    Co mam zrobić???.. proszę o pomoc

  11. Witam, chciałbym dowiedzieć się, gdzie mogę znaleźć w dostępnych widżetach „niestandardowe menu”. Nie pojawia się i nie udało mi się dodać strony do stopki za pomocą tego widżetu.

    dziękuję za pomoc!!!!

  12. Cześć, jak mogę wyświetlić logo zamiast tekstu? Czy zastąpienie adresu URL logo tekstem wystarczy?
    Dziękuję z góry.

  13. Co było pierwsze, widżet czy aplikacja?
    Czy widżet musi być zarejestrowany, jeśli tak, to jak?
    Jak najlepiej chronić swój pomysł na widżet lub aplikację?
    Dzięki wszystkim

  14. Te instrukcje doskonale sprawdziły się przy tworzeniu mojego niestandardowego widżetu. Nie mogę jednak dowiedzieć się, jak zmienić rozmiar czcionki na 60px. Udało mi się dodać CSS do opcji motywu Divi, który wyśrodkował tekst i dodał obramowanie linii. Ale jak zmienić styl czcionki, proszę? Dodanie „font-size:60px” nie działa. Chcę, aby czcionka była duża, jak nagłówek biegnący przez stronę. Dziękuję.

  15. Cześć! Mam nadzieję, że możesz mi pomóc.

    Stworzyłem niestandardowy typ posta, który wyświetla harmonogram dla sklepu. Oczywiście, możesz tworzyć tyle harmonogramów, ile chcesz, ale moja potrzeba polega na wyświetleniu danego harmonogramu w bocznym pasku strony internetowej.

    W tym celu stworzyłem widżet, który zapętla posty z rozkładem jazdy, pokazując tylko 1 (mianowicie pierwszy, ponieważ sortowałem w kolejności ASC). Jest to tymczasowe rozwiązanie, tylko po to, aby zobaczyć, czy widżet działa, a faktycznie działa.

    Chciałbym po prostu pokazać w backendzie listę rozwijaną wszystkich postów należących do typu postu „timetable”, abym mógł wybrać ten, którego potrzebuję, kiedy go potrzebuję, i wyświetlić go na frontendzie. Jak mogę to zrobić?

    Dziękuję, jeśli możesz/chcesz pomóc.

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszą polityką komentowania, a Twój adres e-mail NIE zostanie opublikowany. Prosimy NIE używać słów kluczowych w polu nazwy. Prowadźmy osobistą i znaczącą rozmowę.