Rozwój pluginów dla WordPress – od początków do mistrzostwa: pokazujemy ci, jak stworzyć własną, unikalną funkcję.

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

W dzisiejszym świecie Internetu WordPress dominuje na rynku ze względu na swoją wielką rozszerzalność. Jeden z jego największych atutów to możliwość dodawania prawie dowolnych funkcji za pomocą wtyczek (pluginów). Od prostych narzędzi do obsługi krótkich kodów po zaawansowane rozszerzenia systemów zarządzania treścią – wszystko to można zrealizować za pomocą dobrze zaprojektowanych wtyczek. Opanowanie umiejętności programowania wtyczek oznacza, że możesz nie tylko tworzyć rozwiązania dostosowane do potrzeb swoich projektów lub klientów, ale także przekształcać swoje kreatywne idee w sprzedawane produkty, wejść na szeroką rynek ekosystemu WordPress.

Środowisko do rozwoju dodatków (plug-inów) i podstawy tego procesu

Przed rozpoczęciem pisania wtyczek dla WordPress jest niezbędne stworzenie stabilnego i wydajnego środowiska rozwoju lokalnego. Rekomendujemy użyć narzędzi takich jak Local by Flywheel, Laragon lub Docker, aby szybko przygotować środowisko WordPress zawierające PHP, MySQL oraz serwery Apache/Nginx. Dzięki temu będzie można testować i debugować aplikację w bezpiecznym, izolowanym środowisku.

Stworz swoj pierwszy plik z rozszerzeniem (plugin).

Możliwe, że plugin może być na tyle prosty, by składać się z tylko jednego pliku, ale ze względu na standardy zacznijmy od określonej struktury. Wejdź do katalogu z instalacją WordPress. wp-content/plugins folder: Tworzymy nowy folder, na przykład… my-first-plugin

Polecamy lekturę. Przewodnik po rozwoju pluginów dla WordPressa: jak stworzyć swoje pierwsze rozszerzenie funkcjonalne od zera

W tym folderze utwórz plik głównego pluginu, który zwykle nosi nazwę pluginu. my-first-plugin.phpKażdy plugin musi zawierać standardowe komentarze umieszczone na początku pliku, które służą do identyfikacji informacji o pluginie. To jedyny sposób, jak WordPress może rozpoznać dane dotyczące danego pluginu.

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.
<?php
/**
 * Plugin Name: 我的第一个插件
 * Plugin URI:  https://yourwebsite.com/my-first-plugin
 * Description: 这是一个用于学习 WordPress 插件开发的基础插件。
 * Version:     1.0.0
 * Author:      你的名字
 * License:     GPL v2 or later
 * Text Domain: my-first-plugin
 */

Po zapisaniu tego pliku wejdź na stronę “Dodatki” w panelu administracyjnym WordPress i powinien pojawić się twój dodatek w liście dostępnych pluginów. Możesz go aktywować w taki sam sposób jak inne dodatki. Choć na razie nie ma żadnych funkcji, udało ci się już wykonać pierwszy krok. Aby ułatwić dalszą pracę nad dodatkiem, zaleca się stworzenie jasnej struktury katalogów w folderze zawierającym pliki dodatku. admin/(Kod związany z backendem)public/(Kod dotyczący front endu)includes/(Kluczowe funkcje i biblioteki), a także miejsca do przechowywania zasobów JavaScript i CSS assets/ folder.

Podstawowe koncepty rozwoju oprogramowania: „haki” (hooks) i „akcje” (actions)

Po zrozumieniu podstawowej struktury pluginów musimy zajść głębiej w istotę systemu pluginów WordPress – hooków. Hooki dzielą się na dwa typy: akcje (Actions) i filtry (Filters). To kluczowe elementy architektury WordPress opartej na zdarzeniach, które umożliwiają wprowadzenie Twojego kodu w określone momenty podczas wykonywania standardowych procedur WordPress.

Zrozumienie hooków akcji

Aktywności hookowe (ang. action hooks) umożliwiają wykonywanie własnego kodu w określonych momencach życia aplikacji WordPress. Na przykład, po opublikowaniu artykułu lub po logowaniu użytkownika WordPress aktywuje odpowiednie aktywności hookowe.

Użyj add_action() Funkcja umożliwia montaż Twojej funkcji na określony „hak” (hook). Jej podstawowa gramatika jest następująca:add_action( ‘hook_name’, ‘your_function_name’, priority, accepted_args );Dajmy sobie przyjemność i dodajmy jeden wiersz tekstu dostosowanego do potrzeb do nagłówka strony internetowej.

Polecamy lekturę. Rozwój pluginów dla WordPress: Pełny przewodnik od poznania podstaw do osiągnięcia mistrzostwa w tworzeniu modułów z dużą możliwością personalizacji

Funkcja myplugin_add_footer_text() {
    echo '<p id="custom-footer">Dziękujemy za korzystanie z tej witryny! Ten tekst został dodany przez moje wtyczki (plugi).</p>';
}
add_action( ‘wp_footer’, ‘myplugin_add_footer_text’ );

Po aktywacji pluginu zawierającego powyżej opisany kod, tekst ten zostanie dodany do obszaru nagłówka strony (footer). To typowe zastosowanie “hooków akcji” – kod jest wykonywany w określonym miejscu, bez modyfikacji oryginalnych danych, tylko wykonywane są operacje typu “wyświetlenia” lub „realizacji”.

Opanowanie hooków filtrów

W odróżnieniu od działań, hooki filtrów służą do modyfikacji danych. Dzięki nim możesz zmieniać dane przed ich użyciem – na przykład przed ich zapisaniem do bazy danych lub wyświetleniem w przeglądarzu. WordPress przekazuje dane do ciebie w formie, którą ustaliliśmy, a po Twoich zmianach dane są ponownie przekazane dalej.

Użyj add_filter() Można użyć funkcji do aplikowania filtrów. Na przykład chcemy zmienić końcówkę nagłówka artykułu i dodać do niej własny sufiks.

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%
function myplugin_modify_title( $title ) {
    // 确保只在主循环且在前端单篇文章页面修改
    if ( is_single() && in_the_loop() ) {
        return $title . ‘ - 精彩内容’;
    }
    return $title;
}
add_filter( ‘the_title’, ‘myplugin_modify_title’ );

W tym przykładzie…the_title Filtr wyświetla nagłówek aktualnego artykułu. $title Funkcja, do której jest przekazywany argument. myplugin_modify_titlePo tym, jak wykorzystasz funkcję modifikacji i powrócisz z nowym stringiem, WordPress użyje tej zmienionej wartości do wyświetlenia treści. Zrozumienie i biegłe posługiwanie się akcjami (actions) oraz filtrami (filters) to klucz do odkrycia nieograniczonych możliwości dostosowania WordPress.

Tworzenie funkcji dodatków: dodanie menu i opcji do zarządzania

Dojrzały plugin musi mieć swoją własną stronę konfiguracji w interfejsie administracyjnym WordPress, aby użytkownicy mogli ustawić odpowiednie opcje. To wymaga wykorzystania API menu w WordPress.

Utworzenie menu zarządzania najwyższego poziomu

Możesz użyć add_menu_page() Funkcja umożliwia dodanie elementu menu na najwyższym poziomie do twojego pluginu. Definiuje ona nagłówek menu, uprawnienia, informacje o adresie URL itd., a także powiązuje to z funkcją obsługującą wyświetlanie treści strony.

Polecamy lekturę. Przewodnik po rozpoczęciu tworzenia wtyczek WordPress: budowanie swojego pierwszego rozszerzenia od podstaw.

function myplugin_add_admin_menu() {
    add_menu_page(
        ‘我的插件设置’, // 页面标题
        ‘我的插件’, // 菜单标题
        ‘manage_options’, // 所需权限(管理员)
        ‘myplugin-settings’, // 菜单 Slug
        ‘myplugin_display_settings_page’, // 显示页面的函数
        ‘dashicons-admin-generic’, // 菜单图标(Dashicon)
        100 // 菜单位置
    );
}
add_action( ‘admin_menu’, ‘myplugin_add_admin_menu’ );

function myplugin_display_settings_page() {
    ?&gt;
    <div class="“wrap”">
        <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
        <form action="/pl/“options.php”/" method="“post”" data-trp-original-action="“options.php”">
            <?php
            // 输出设置字段、非ce等
            settings_fields( ‘myplugin_options_group’ );
            do_settings_sections( ‘myplugin-settings’ );
            submit_button( ‘保存设置’ );
            ?>
        <input type="hidden" name="trp-form-language" value="pl"/></form>
    </div>
    &lt;?php
}

Dodaj powyższy kod do swojego pluginu. Po aktywacji uvidzisz na lewej stronie panelu administracyjnego WordPress nowy element menu o nazwie “Moje pluginy”. Kliknij na niego, aby wejść do obszaru zarządzania tym pluginem. myplugin_display_settings_page Strona renderowana przez funkcję.

Użyj API do konfiguracji opcji rejestracji.

Ręczne obsługiwanie procesów wysyłania i weryfikacji formularzy jest uciążliwe i niebezpieczne. WordPress oferuje wydajną API do konfiguracji (Settings API), która ułatwia ten proces. Ta API jest odpowiedzialna za weryfikację formularzy (zwanej „nonce”), sprawdzanie upoważnień użytkowników oraz przechowywanie danych.

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.

Najpierw musisz użyć… register_setting() Zarejestruj swoje grupy ustawień i pola, a potem użyj ich. add_settings_section() Dodaj obszar ustawień i użyj go. add_settings_field() Dodaj konkretnych polów.

function myplugin_register_settings() {
    // 注册一组设置,数据将保存在 `myplugin_options` 选项中
    register_setting(
        ‘myplugin_options_group’, // 设置组名,与 settings_fields() 对应
        ‘myplugin_options’, // 选项名
        ‘myplugin_sanitize_callback’ // 数据清理回调函数(可选但推荐)
    );

// 添加一个设置区域
    add_settings_section(
        ‘myplugin_main_section’,
        ‘主要设置’,
        null, // 区域描述的回调函数
        ‘myplugin-settings’ // 页面 Slug
    );

// 在区域中添加一个文本字段
    add_settings_field(
        ‘myplugin_text_field’,
        ‘欢迎语’,
        ‘myplugin_text_field_render’, // 渲染字段输入框的函数
        ‘myplugin-settings’,
        ‘myplugin_main_section’
    );
}
add_action( ‘admin_init’, ‘myplugin_register_settings’ );

function myplugin_text_field_render() {
    $options = get_option( ‘myplugin_options’ );
    $value = $options[‘myplugin_text_field’] ?? ‘’;
    ?>
    <input type=“text” name=“myplugin_options[myplugin_text_field]” value=“<?php echo esc_attr( $value ); ?>”>
    <?php
}

function myplugin_sanitize_callback( $input ) {
    // 清理和验证输入数据
    $sanitized_input = [];
    if ( isset( $input[‘myplugin_text_field’] ) ) {
        $sanitized_input[‘myplugin_text_field’] = sanitize_text_field( $input[‘myplugin_text_field’] );
    }
    return $sanitized_input;
}

Teraz twoja strona ustawień posiada pola tekstowe z funkcjami walidacji i przechowywania danych. Za pomocą API do ustawień (Settings API) możesz bezpiecznie i efektywnie tworzyć złożone interfejsy konfiguracji.

Wydawanie i utrzymywanie wtyczek.

Gdy funkcje twojego pluginu zostaną doprowadzone do perfekcji i przeszedą przez dokładne testy, możesz zastanowić się nad jego udostępnieniem większej liczbie użytkowników. To wymaga przygotowania kodu pod różne języki, zabezpieczenia aplikacji oraz przygotowania do publikacji.

Implementacja internacionalizacji wtyczek

Aby twoje wtyczki były dostępne dla użytkowników nie używających języka chińskiego, musisz otoczyć wszystkie teksty skierowane do użytkowników funkcjami internacionalizacji (i18n) dostępnymi w WordPress. Najczęściej używa się… __() Wykorzystywany do wyświetlania tłumaczeń._e() Wykorzystywany do bezpośredniego wyświetlania tłumaczeń.

Najpierw zmienij wszystkie teksty zawarte w twoim kodzie.

// 在插件头部注释中,确保 Text Domain 正确
// 在代码中
function myplugin_display_settings_page() {
    ?&gt;
    <h1><?php _e( ‘我的插件设置’, ‘my-first-plugin’ ); ?></h1>
    &lt;?php
}

Następnie, użyj narzędzia podobnego do Poedit, by skanować kod twojego pluginu i wygenerować… .pot(Template) plik, a także stworzenie pliku dla języka podstawowego (np. angielskiego). .po I po skompilowaniu. .mo Pliki językowe – umieść je w folderze z pluginem. languages/ W folderze znajdują się pliki z tłumaczeniami. WordPress automatycznie pobierze odpowiednie tłumaczenia w zależności od ustawie języka witryny.

Zadbaj o bezpieczeństwo i wydajność kodu.

Przed opublikowaniem kodu koniecznie sprawdź, czy nie zawiera żadnych zagrożzeń dla bezpieczeństwa. Dla wszystkich wprowadzanych przez użytkowników danych oraz wyświetlanych wyników używaj odpowiednich funkcji filtracji dostępnych w WordPress. esc_html(), esc_attr(), sanitize_text_field()wp_kses_post()Podczas wykonywania zapytów do bazy danych należy używać… $wpdb Metody klasy… WP_QueryUnikaj bezpośredniego łączenia zdań SQL, aby zapobiec atakom typu iniekcji (injection attacks).

W tym samym czasie trzeba zwrócić uwagę na optymalizację wydajności. Korzystaj z hooków rozsądnie, aby uniknąć wykonywania wielu niepotrzebnych operacji przy każdym ładowaniu strony. W przypadku złożonych wyników wyszukiwania rozważaj użycie API do tworzenia tymczasowego cache’u w WordPress (zwanego „Transients”), na przykład poprzez odpowiednie konfiguracje w pliku settings.php. set_transient()get_transient()

Na koniec, postaraj się przestrzegać oficjalnych standardów rozwoju pluginów i struktury katalogu WordPress. Napisz jasne dokumentacje, w tym także plik README. Możesz zdecydować się o wysłaniu swojego pluginu do oficjalnego katalogu pluginów na stronie WordPress.org – w ten sposób użytkownicy będą mogli go łatwo znaleźć i zainstalować, a także otrzymywać automatyczne aktualizacje.

Podsumowanie.

Rozwoj pluginów dla WordPress polega na poznawaniu podstawowej struktury systemu, a potem na stopniowym opanowaniu mechanizmów hooków oraz budowy interfejsów administracyjnych, aby w końcu stworzyć bezpieczne i łatwe w tłumaczeniu pluginy. W tym artykule przeszłeś krok po kroku od stworzenia pierwszego, pustego pluginu, przez rozszerzanie jego funkcji za pomocą hooków akcji i filtrów, aż po budowę profesjonalnych stron konfiguracji za pomocą API Settings. Pamiętaj, że kluczowym elementem jest praktyka – zaczynając od prostego pomysłu, iterując i wykorzystując bogate API WordPress oraz zasoby jego społeczności, możesz stworzyć nie tylko potężny, ale i profesjonalny plugin, który pozwoli ci dostosować swoją stronę internetową według potrzeb, a nawet stworzyć coś cennego.

FAQ – najczęściej zadawane pytania.

Jaki jest wymagany poziom wiedzy, by rozwijać dodatki do WordPress?

Konieczne jest posiadanie podstawowych umiejętności programowania w PHP, w tym związanych z zmiennymi, funkcjami, tablicami oraz podstawami programowania obiektowego. Równie ważne jest znajomość HTML, CSS i JavaScript, ponieważ są niezbędne do manipulacji z wyglądem i interakcją na stronie internetowej. Dobrze poznanie funkcji podstawowych WordPress oraz interfejsu administracyjnego jest warunkiem zrozumienia sposobu działania pluginów.

W jaki sposób różnią się funkcje dodatków (plug-inów) i tematów (templates)? Kiedy warto rozwijać dodatki?

Tematy w głównym stopniu kontrolują wygląd i układ witryny, natomiast dodatki (plugi) służą do dodawania nowych funkcji. Prostym kryterium rozróżnienia jest to, czy funkcja jest ściśle powiązana z wizualnym designem witryny – w takim przypadku należy ją umieścić w temacie. Jeśli funkcja jest niezależna i może być używana również po zmianie tematu (np. formularze kontaktowe, optymalizacja SEO, mechanizmy cache’owania), należy ją stworzyć jako dodatek. Dodawanie funkcji za pomocą dodatków, a stylu za pomocą tematów, sprzyja długoterminowemu utrzymaniu i aktualizacjom witryny.

Jak debugować moje wtyczki dla WordPress?

Najpierw… wp-config.php Włącz tryb debugowania WordPressa w pliku. WP_DEBUG Konstanta ustawiona jest na… trueTo wyświetli błędy, ostrzeżenia i powiadomienia PHP na stronie. Ponadto, używając… error_log() Funkcja umożliwia zapisywanie informacji o debugowaniu do logów błędów na serwerze. W przypadku złożonej logiki można używać profesjonalnych narzędzi do debugowania, takich jak Xdebug, w połączeniu z ustawieniami w środowisku rozwojowym (IDE) do detalicznego debugowania koda na poziomie poszczególnych linii. Karty „Konsole” (Console) i „Sieć” (Network) w narzędziach deweloperskich w przeglądaczach są przydatnymi narzędziami do debugowania kodu JavaScript i żądań AJAX na stronie klienta.

Jak moja dodatkowa funkcja (plugin) będzie kompatybilna z innymi pluginami?

Aby zwiększyć kompatybilność, twoje wtyczki powinny używać unikalnych prefiksów do nazwania wszystkich funkcji, klas, stałych, nazw opcji oraz tabel w bazie danych. To pomaga uniknąć konfliktów nazw. Używaj globalnych zmiennych z ostrożnością. Podczas dodawania „hooków” ustawiaj parametry priorytetów tak, aby kolejność wykonywania działań odpowiadała twoim oczekiwaniom. Jeśli dane są dostępne dla innych wtyczek, upewnij się, że twoje kod jest wystarczająco wytrzymałe, aby obsługiwać różne możliwe wartości wejściowych. Przed publikacją sprawdź działanie wtyczki w wielu różnych środowiskach oraz w połączeniu z popularnymi wtyczkami.

Jak dodać do mojego pluginu własną tabelę w bazie danych?

Choć WordPress oferuje… wp_options Ustawienia dotyczące magazynowania w tabelach, ale dla dużych ilości strukturalnych danych lepszą wydajność zapewniają własne tabele w bazie danych. Możesz to zrobić, aktywując odpowiednie hooki w pluginach (z użyciem…) register_activation_hook() Kod SQL do tworzenia tabeli należy napisać w ramach procedury rejestracji funkcji. Koniecznie użyj odpowiednich instrukcji SQL. $wpdb->prefix Aby uzyskać właściwy prefiks i go użyć… dbDelta() Funkcja służy do tworzenia lub aktualizowania tabeli i umie inteligentnie radzić sobie z różnicami w ich strukturze. Ponadto należy uwzględnić, jak usunąć te dane w momencie odinstalowania wtyczki, aby użytkownik miał możliwość wyboru odpowiedniej opcji.