Przewodnik po tworzeniu wtyczek do WordPressa: buduj swój pierwszy niestandardowy moduł funkcjonalny od podstaw.

3 minuty na przeczytanie.
2026-03-11
2026-06-03
2,074
Zarabiam prowizję, gdy robisz zakupy poprzez poniższe linki, bez żadnych dodatkowych kosztów dla Ciebie.

Czemu potrzebna jest rozwój własnych dodatków (pluginów)?

W ekosystemie WordPress pluginy odgrywają kluczową rolę w rozszerzaniu funkcjonalności witryny. Choć na rynku dostępne są tysiące gotowych pluginów, rozwój własnych daje unikalne korzyści. Jeśli twoje wymagania są bardzo specyficzne lub obecna kombinacja pluginów jest zbyt skomplikowana i nieskuteczna, dedykowany plugin może być najlepszym rozwiązaniem. Pluginy dostosowane do indywidualnych potrzeb doskonale odpowiadają logice działania twojego biznesu, unikają konfliktów wynikających z użycia kilku pluginów i zwykle charakteryzują się lepszą wydajnością w porównaniu z wielofunkcyjnymi, standardowymi rozwiązaniami. Co więcej, rozwijając własne pluginy, masz pełną kontrolę nad jakością i bezpieczeństwem kodu.

Z punktu widzenia nauki, zrozumienie mechanizmów rozwoju wtyczek (pluginów) jest koniecznym krokiem na drodze do dogłębnego opanowania WordPressa. Dzięki temu przechodzisz z roli “użytkownika” do roli “twórcy”, co daje ci większą swobodę w realizacji różnych wymagań dotyczących personalizacji i stanowi solidną podstawę dla dalszego rozwoju produktów lub kariery.

Przygotowanie: Ustanowienie środowiska rozwoju

Przed rozpoczęciem pisania kodu istotne jest posiadanie stabilnego, izolowanego środowiska rozwoju. To nie tylko zapewni bezpieczeństwo twojej witryny w produkcji, ale także umożliwi swobodne testowanie i debugowanie.

Konfiguracja lokalnego środowiska deweloperskiego.

Zaleca się używać lokalnych pakietów programistycznych do obsługi serwerów, takich jak Local by Flywheel, XAMPP lub MAMP. Te narzędzia symulują środowisko serwera internetowego (Apache/Nginx, MySQL, PHP) na twoim komputerze, umożliwiając tworzenie i testowanie kodu w trybie offline. Po instalacji stworz kopię witryny WordPress jako “środowisko testowe” („sandbox”).

Wybór edytora kodu

Możliwość korzystania z wydajnego edytora kodu znacząco poprawia efektywność rozwoju oprogramowania. Visual Studio Code jest aktualnie bardzo popularnym wyborem – jest lekkim, darmowym narzędziem, które oferuje bogatą gamę rozszerzeń, w tym funkcje podkreślania specyfiki języka PHP i platformy WordPress, sugestii kodu oraz narzędzia do debugowania. PHPStorm to kolejne wydajne środowisko integracyjne (IDE), oferujące bardziej zaawansowane funkcje analizy i rekonstrukcji kodu.

UltaHost – hostingu dla stron WordPress
Gwarancja zwrotu pieniędzy w ciągu 30 dni, nieograniczony przepustowość sieci i dostęp do bazy danych, bezpłatna ochrona przed atakami typu DDoS. Promocja: 50% przy zakupie na 3 lata.

Nie wiem, co zrobić. Jestem taki zmęczony.

Struktura podstawowych plików wtyczek

Najprostszym pluginem do WordPress może być tylko jeden główny plik PHP. Jednak standardowe pliki pluginów zwykle posiadają jasną strukturę folderów i plików. W katalogu lokalnej instalacji WordPress znajdziesz… wp-content/plugins W folderze utwórz nowy folder dla swojego pluginu, na przykład: my-first-pluginTen folder będzie zawierać wszystkie pliki pluginów.

Stworzenie twojego pierwszego pluginu “Hello Admin”

Tworzyć będziemy plugin o nazwie “Hello Admin”, który ma bardzo prostą funkcję: wyświetlać na szczycie panelu kontrolnego w WordPress informację powitalną według ustawień użytkownika. Ten przykład pokazuje kluczowe elementy rozwoju pluginów: plik główny, haki (hooks) oraz podstawowe funkcje.

Tworzenie pliku z głównym pluginem

W folderze z twoimi pluginami… my-first-plugin Wewnątrz, stworz nazwany… my-first-plugin.php To plik zawierający informacje o pluginie. Jest to plik wejściowy do pluginu. Otworzyć go i najpierw dodaj standardowe komentarze z informacjami o pluginie na początku pliku. Te komentarze są konieczne, aby WordPress mógł rozpoznać plugin.

<?php
/**
 * Plugin Name:       Hello Admin
 * Plugin URI:        https://yourwebsite.com/hello-admin
 * Description:       一个简单的插件,用于在管理后台显示欢迎信息。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       hello-admin
 */

Użyj haczyków („hooks”) do dodawania funkcji.

Podstawowym mechanizmem WordPress jest system “hooków” (ang. Hooks), który umożliwia włączenie własnego kodu w określone momenty wykonywania procesów. Istnieją dwa głównego typy hooków: hooki akcji (Action Hooks) i hooki filtrów (Filter Hooks). Aby wyświetlić treść w panelu administracyjnym, należy użyć hooków akcji.

Gdy WordPress łada elementy nagłówka swojego panelu administracyjnego, dostępna jest funkcja o nazwie… admin_notices Aktywny hook działa w taki sposób, że możemy go wykorzystać do realizacji określonych działań. Możemy to zrobić poprzez… add_action() Funkcja umożliwia przypisanie naszej własnej funkcji do tego „haka” (hooka).

Poniżej komentarzy w głównym pliku dodaj następujący kod:

// 钩子函数:在管理后台显示通知
function hello_admin_display_message() {
    // 确保只对管理员显示,使用 current_user_can() 检查权限
    if ( current_user_can( 'manage_options' ) ) {
        echo '<div class="notice notice-success is-dismissible"><p>Witamy z powrotem, administratorze! To jest twój własny plugin “Hello Admin” w aktywnym trybie.</p></div>';
    }
}
// 将我们的函数挂载到 ‘admin_notices’ 这个动作钩子上
add_action( 'admin_notices', 'hello_admin_display_message' );

Testowanie i aktywacja

Zapisz plik. Teraz wejdź do panelu administracyjnego swojego lokalnego witryny WordPress (zwykle to adres http://www Twoje_domena.com/wp-admin/). /wp-adminPrzejdź do menu “Dodatki” (“Plugins”) i powinienś zobaczyć w liście dostępnych dodatków element o nazwie “Hello Admin”. Kliknij na „Uwolnij” („Enable”). Po włączeniu dodatku odśwież stronę panelu kontrolnego – na górnym margynie pojawi się zielone okno powiadomienia o powodzeniu, pokazujące twoje ustawione powitanie. To oznacza, że twój pierwszy dodatek został uruchomiony z powodzeniem!

hosting.com Hosting współdzielony
Wysoka wydajność dzięki procesorom AMD EPYC, pamięci masowej NVMe SSD i LiteSpeed, wewnętrzne wsparcie ekspertów 24/7, zaawansowane środki bezpieczeństwa, w tym SSL, brute force, ochrona przed złośliwym oprogramowaniem i DDoS, oszczędność do 73%

Dodać do pluginu konfigurowalne opcje

Plugin, który wyświetla tylko stałe informacje, ma ograniczoną przydatność. Następnym krokiem jest udostępnienie możliwości konfiguracji, aby administrator mógł samodzielnie ustawić wiadomości, które mają być wyświetlone. To wymaga stworzenia strony menu administracyjnego, obsługi danych z formularzy oraz używania API do przechowywania tych danych.

Nie wiem, co zrobić. Jestem taki zmęczony.

Tworzenie strony menu zarządzania

Musimy dodać stronę z ustawieniami w panelu administracyjnym. To można zrealizować poprzez… add_menu_page()add_submenu_page() Implementacja funkcji. Kontynuujemy dodawanie kodu w głównym pliku pluginu.

Najpierw stwórz funkcję, która generuje treść HTML dla strony konfiguracji, a potem zarejestruj element menu:

// 创建插件设置页面
function hello_admin_add_settings_page() {
    add_options_page(
        'Hello Admin 设置', // 页面标题
        'Hello Admin',      // 菜单标题
        'manage_options',   // 所需权限
        'hello-admin',      // 菜单slug
        'hello_admin_render_settings_page' // 用于渲染页面的回调函数
    );
}
add_action( 'admin_menu', 'hello_admin_add_settings_page' );
// 渲染设置页面的HTML
function hello_admin_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>Hello Admin – ustawienia</h1>
        <form method="post" action="/pl/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'hello_admin_settings_group' ); // 设置组名称
            do_settings_sections( 'hello-admin' ); // 页面slug
            submit_button(); // 提交按钮
            ?>
        <input type="hidden" name="trp-form-language" value="pl"/></form>
    </div>
    &lt;?php
}

Ustawienia rejestracji, pola oraz magazynowanie danych

Następnie musimy użyć API ustawień WordPress (Settings API) do bezpiecznego rejestracji, weryfikacji i zapisu naszych opcji. Stwórz kolejną funkcję i… admin_init Uruchom to na haczu.

// 初始化设置
function hello_admin_settings_init() {
    // 注册一个设置,将其存储在 wp_options 表中
    register_setting( 'hello_admin_settings_group', 'hello_admin_custom_message', 'sanitize_text_field' );
// 在页面上添加一个设置区域(可以省略,此处为清晰而加)
    add_settings_section(
        'hello_admin_section',
        '自定义消息设置',
        null, // 可选的区域描述回调函数
        'hello-admin'
    );
// 在区域中添加一个字段
    add_settings_field(
        'hello_admin_message_field',
        '欢迎消息',
        'hello_admin_message_field_callback',
        'hello-admin',
        'hello_admin_section'
    );
}
add_action( 'admin_init', 'hello_admin_settings_init' );
// 渲染消息输入字段
function hello_admin_message_field_callback() {
    $message = get_option( 'hello_admin_custom_message', '欢迎回来,管理员!' ); // 获取已保存的值,没有则用默认值
    echo '<input type="text" name="hello_admin_custom_message" value="' . esc_attr( $message ) . '" class="regular-text" />'echo '<p class="description">Wpisz tu wiadomość powitania, którą chcesz wyświetlić w panelu administracyjnym.</p>';
}

Zmodyfikuj funkcję wyświetlania, aby używała ustawień konfiguracji.

Na koniec musimy zmienić funkcję wyświetlania powiadomień, którą przygotowaliśmy na początku. hello_admin_display_message()Aby to zrealizować, należy wybrać opcję „Bazę danych” (Database) z dostępnych opcji. hello_admin_custom_message Zawartość jest odczytywana z danego źródła, a nie jest hardkodowana.

Hosting współdzielony InterServer
Hosting współdzielony $2.50 USD miesięcznie, pierwszy miesiąc $0.1 USD kod promocyjny tryinterserver, 461 skryptów aplikacji w chmurze, instalacja jednym kliknięciem.
function hello_admin_display_message() {
    if ( current_user_can( 'manage_options' ) ) {
        $custom_message = get_option( 'hello_admin_custom_message', '欢迎回来,管理员!' ); // 获取自定义消息
        if ( ! empty( $custom_message ) ) {
            echo '<div class="notice notice-success is-dismissible"><p>'`.esc_html($custom_message)`.'</p></div>';
        }
    }
}

Teraz zapisz wszystkie zmiany. Powróć do panelu administracyjnego WordPress i w menu “Ustawienia” znajdziesz opcję “Hello Admin”. Wejdź na tę stronę, zmień tekst przekazu i zapisz zmiany. Odtwórz panel kontrolny (dashboard) i zobaczysz, że wyświetlany tekst został zastąpiony przez ten, który ustawiłeś. W ten sposób stworzyłeś własną wtyczkę z podstawowymi funkcjami konfiguracji.

Najlepsze praktyki rozwoju pluginów oraz następne kroki

Po implementacji podstawowych funkcji stosowanie najlepszych praktyk sprawi, że twoje dodatkowe narzędzie (plugin) będzie profesjonalniejsze, bezpieczniejsze i łatwiejsze w obsłudze.

Nie wiem, co zrobić. Jestem taki zmęczony.

Bezpieczeństwo jest najważniejsze: zawsze sprawdź, wyeliminuj niebezpieczne znaki i oczyszczaj dane wprowadzone przez użytkowników. Korzystaj z funkcji dostępnych w WordPress. esc_html(), esc_attr(), sanitize_text_field(), wp_nonce_field() Itp. Nigdy nie powinniśmy bezpośrednio ufać danym pochodzącym od użytkowników lub z bazy danych.

Organizacja kodu i komentarze: Im większą funkcjonalność posiada plugin, tym bardziej istotne jest rozdzielenie kodu na różne klasy lub pliki. Używanie programowania obiektowego (OOP) pomaga zwiększyć powtarzalność i zorganizować kod. Dodawanie jasnych komentarzy do funkcji i klas jest kluczowe, zarówno dla ciebie w przyszłości, jak i dla potencjalnych współpracowników.

Przygotowanie do internacionalizacji: Jeśli twoje dodatkowe funkcje (plugin) mają zostać udostępnione publicznie, powinny obsługiwać procesy internacionalizacji (ang. internationalization, lub skrótowo i18n). To oznacza, że musisz przygotować je tak, aby mogły być tłumaczone na różne języki. __()_e() Funkcje typu „wait” obejmują wszystkie teksty przeznaczone dla użytkowników i ustalają właściwości obszaru tekstowego (Text Domain). Dzięki temu inni mogą tłumaczyć twoje dodatki na inne języki.

Rozwiązania dotyczące wydajności: Zawęż uwagę wyłącznie do tych przypadków, gdy konieczne jest załadowanie zasobów twojego pluginu (CSS, JavaScript). Korzystaj rozsądnie z warunków decydujących o wykonywaniu kodu, by uniknąć niepotrzebnego pobierania skryptów na każdej stronie. Optymalizuj zapytania do bazy danych i wykorzystuj API „Transients” w WordPressu do efektywnego ustawiania cache’u.

Dalsze eksploracje: Po opanowaniu podstaw możesz zajmować się bardziej zaawansowanymi tematami, takimi jak tworzenie własnych typów artykułów (Custom Post Types – CPT) i kategorii, dodawanie shortcode’ów, rozwijanie własnych widgetów, integracja z REST API, a także tworzenie bloków, które można przemieszczać w strukturze witryny.

Podsumowanie.

Dzięki temu poradnikowi udało ci się samodzielnie stworzyć pełnowartościowy, dostosowany do potrzeb użytkownika plugin dla WordPressa, zaczynając od zera. Poznałeś podstawowe koncepty rozwoju pluginów, w tym strukturę plików, kluczowy system hooków oraz sposób tworzenia bezpiecznych stron konfiguracji za pomocą API Settings. Choć plugin “Hello Admin” jest prosty, zawiera w sobie kluczowe elementy rozwoju pluginów: deklarację pluginu, montaż funkcji, obsługę danych oraz wyświetlanie wyników. Posiadając te podstawy, masz dostęp do ogromnych możliwości rozszerzania funkcjonalności WordPressa. Pamiętaj, że ciągłe uczenie się, stosowanie najlepszych praktyk oraz gotowość do eksperymentowania to kluczowe elementy zdobywania umiejętności w rozwoju pluginów.

FAQ – najczęściej zadawane pytania.

Jaki minimalny liczba plików jest wymagany do działania wtyczki (pluginu) dla WordPress?

Najprostszą w funkcjonalności pluginę można stworzyć z jednego tylko pliku PHP. Jeśli ten plik zawiera stosowne komentarze z informacjami o pluginie, WordPress jest w stanie go rozpoznać i aktywować. Jednak wraz z zwiększeniem złożoności funkcji kod jest często rozdzielany na kilka plików – np. osobne pliki JavaScript, CSS lub pliki z klasami PHP zorganizowane według poszczególnych modułów.

W jaki sposób różnią się hooki do działań (add_action) od hooków do filtrów (add_filter)?

Aktywnie działające “haki” (ang. Action Hooks) służą do wykonywania określonego kodu lub funkcji w określonym momencie. Nie wymagają powrotu żadnej wartości – ich zadaniem jest po prostu „zrealizowanie jakiegoś działania”. Na przykład: wysłanie wiadomości e-mail po opublikowaniu artykułu.

Filtry hooki (Filter Hooks) służą do modyfikacji danych. Przyjmują jeden wejściowy parametr i powinny zwrócić zmodyfikowany wynik. Na przykład, przed wyświetleniem nagłówka artykułu w przeglądarzu można zmienić jego tekst. Różnica między nimi polega na tym, że akcje (actions) wykonywają określone operacje, natomiast filtry modyfikują dane i zwracają je w postaci nowego wyniku.

Jak bezpiecznie zapisywać dane wprowadzone przez użytkownika do bazy danych?

Koniecznie używaj funkcji API dostępnych w WordPress, np.update_option()register_setting()register_setting()Funkcja umożliwia określenie funkcji obsługującej czyszczenie (tzw. callback function) – na przykład funkcji, która zostanie wywołana po zakończeniu procesu czyszczenia.sanitize_text_fieldPrzed zapisem danych są one automatycznie przetwarzane. Zawsze unikaj bezpośredniego użycia nieprzetworzonych danych.$wpdbMożna użyć zdań SQL do wprowadzania nieprzetworzonych danych użytkowników, co może doprowadzić do poważnych problemów z bezpieczeństwem (np. do ataków typu SQL injection).

Jak uniknąć konfliktów z innymi wtyczkami podczas ich rozwoju?

Dobre zasady kodowania to klucz do uniknięcia konfliktów. Dodawaj unikalne prefiksy do wszystkich swoich funkcji, klas, zmiennych oraz nazw opcji. Na przykład:hello_admin_display_messageA nie to, co jest najczęściej spotykane.display_messageZawierź swoje style CSS i kod JavaScript w określone klasy lub selektory ID. Gdy dodajesz „hooki” (funkcje, które są wykonywane w odpowiednich momencach), upewnij się, że twoje funkcje callback są uruchamiane tylko wtedy, gdy to jest konieczne – na przykład po sprawdzeniu aktualnej strony lub uprawnień użytkownika.