Zaczynamy od zera: kompletny przewodnik po tworzeniu wtyczek WordPressa wraz z praktycznymi poradami.

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

Przygotowanie i ustawienie środowiska

Przed rozpoczęciem pisania kodu kluczowym jest stabilne i wydajne środowisko rozwoju. To nie tylko zapewni, że twoje dodatki będą mieć jasną strukturę podczas dalszego rozwoju, ale także umożliwi ci korzystanie z najnowszych narzędzi, aby zwiększyć efektywność pracy.

Konfiguracja lokalnego środowiska deweloperskiego.

Rekomendujemy korzystanie z lokalnych środowisk serwerowych, takich jak Local by Flywheel, XAMPP lub MAMP. Te narzędzia umożliwiają szybkie uruchomienie środowiska do obsługi WordPress na twoim komputerze, w którym znajdują się Apache/Nginx, MySQL oraz PHP. Upewnij się, że twoja wersja PHP jest kompatybilna z wersją używaną na serwerze docelowym, i włącz funkcję raportowania błędów – to pomoże szybciej wykrywać problemy na etapie rozwoju.

Wybór edytora kodu i narzędzi

Pierwszym krokiem jest wybranie wydajnego edytora kodu, np. Visual Studio Code, PhpStorm lub Sublime Text. Te narzędzia zwykle oferują wyróżnianie syntaksy, sugestie dotyczące kodu oraz integrację z systemem kontroli wersji. Ponadto instalacja narzędzia do poprawiania struktury kodu (np. PHP_CodeSniffer) oraz narzędzia do debugowania (np. Xdebug) znacząco poprawi twoje doświadczenie rozwoju i jakość kodu.

Polecamy lekturę. Pełny przewodnik po tworzeniu tematów dla WordPressa: budowanie profesjonalnych stron internetowych od zera

Utwórz swój pierwszy wtyczkę.

A teraz zacznijmy od stworzenia najprostszego wtyczki, aby zrozumieć podstawową strukturę i mechanizm aktywacji wtyczek w WordPress.

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.

Główny plik pluginu oraz podstawowe informacje metajęzykowe

Każdy plugin WordPress musi mieć główną plikę w formacie PHP, która musi zawierać standardowe informacje o pluginie, aby WordPress mógł go rozpoznać. Stworzymy plik o nazwie… my-first-plugin.php Plik „”.

Wklej kod do tego pliku i pozwol, aby został zapisany w katalogu instalacji WordPress. Następnie załóż plik na serwerze i podaj nowy adres strony w konfiguracji WordPress. /wp-content/plugins/my-first-plugin/ W folderze.

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于学习的简单 WordPress 插件。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

Po zapisaniu pliku można go zobaczyć na stronie “Dodatki” w panelu administracyjnym WordPress i aktywować go kliknięciem na przycisk “Uwolnij”. Na razie nie ma on żadnych funkcji, ale udało się ci stworzyć dodatek, który jest przyznany przez WordPress.

Dodaj stronę ustawień dla tego pluginu.

Często występujące wymaganie to dodanie strony administracyjnej dla wtyczki. Możemy to zrealizować za pomocą narzędzi dostępnych w WordPress. add_menu_page()add_options_page() Funkcja jest realizowana w celu wykonywania określonych zadań.

Polecamy lekturę. Pełny przewodnik po tworzeniu wtyczek do WordPressa: od zera do profesjonalnego rozszerzenia.

W dalszym ciągu dodajemy kod do głównego pliku, aby stworzyć prostą stronę ustawień.

// 钩子:在管理员菜单中添加一个新的页面
add_action('admin_menu', 'mfp_add_admin_menu');

function mfp_add_admin_menu() {
    add_options_page(
        '我的插件设置',          // 页面标题
        '我的插件',             // 菜单标题
        'manage_options',       // 所需权限
        'my-first-plugin',      // 菜单slug
        'mfp_settings_page_html' // 用于显示页面内容的回调函数
    );
}

// 设置页面的HTML内容
function mfp_settings_page_html() {
    // 检查用户权限
    if (!current_user_can('manage_options')) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
        <p>Witaj na stronie ustawień mojego pierwszego dodatku!</p>
        <form action="/pl/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出设置字段(后续可在此添加)
            settings_fields('mfp_options_group');
            do_settings_sections('my-first-plugin');
            submit_button('保存设置');
            ?>
        <input type="hidden" name="trp-form-language" value="pl"/></form>
    </div>
    &lt;?php
}

Ten kod jest używany do… add_action() „Hook będzie wykonywać funkcję…” mfp_add_admin_menu Zmontowane w WordPressie admin_menu Pod względem działania: Gdy jest tworzone menu administracyjne, nasza funkcja zostaje wywołana, co doprowadza do dodania nowego elementu menu podmenu do głównego menu “Ustawienia”. Po kliknięciu na ten element menu zostanie wykonywana odpowiednia akcja. mfp_settings_page_html Funkcja jest używana do renderowania zawartości strony.

Zrozumienie hooków i filtrów w WordPress

Podstawa filozofii WordPressa stanowią “hakówki” (hooks), które umożliwiają wstawianie własnego kodu w określone momenty lub w określonych miejscach, aby modyfikować lub rozszerzać funkcje standardowego oprogramowania WordPressa, bez konieczności bezpośredniego edycji źródłowych plików. Hakówki dzielą się głównie na dwa typy: akcje (Actions) i filtry (Filters).

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%

Używanie aktywnych haczków (action hooks)

Aktywny haczyk (ang. action hook) wykonywa twoj kod w momencie wydarzenia określonego, np. publikacji artykułu, ładowania panelu administracyjnego lub wyświetlania nagłówka strony. Nie oczekuje żadnej wartości zwrotnej i jest przeznaczony głównie do wykonywania określonej zadania. add_action() Funkcja służy do przyłączenia funkcji obsługującej odpowiedź („callback function”) do określonego „hooka akcji” („action hook”).

Na przykład chcemy automatycznie dodawać oświadczenie o prawach autorskich na końcu każdego artykułu. Można to zrealizować za pomocą odpowiednich narzędzi lub skryptów. the_content Ten filtr (który jednocześnie pełni rolę punktu akcji) służy do realizacji tego celu. Aby jednak lepiej zaprezentować samą akcję, używamy… wp_footer Hook wyświetla informacje w nagłówku strony frontowej witryny internetowej.

add_action('wp_footer', 'mfp_add_footer_note');

function mfp_add_footer_note() {
    if (is_single()) { // 仅在文章页面显示
        echo '<p style="text-align:center; color:#666;">Ten tekst został przygotowany dla ciebie przez moje dodatki (pluginy).</p>';
    }
}

Używanie filtrów hooków

Filtry hooki są używane do modyfikacji danych przed ich użyciem lub zapisem do bazy danych. Oczekuje się, że otrzymasz wartość, którą następnie zmodyfikujesz i pozwolisz programowi zwrócić tę zmienioną wartość. My używamy tego mechanizmu w naszym kodzie. add_filter() Funkcja służy do montażu funkcji obsługujących wywołania (callback functions).

Polecamy lekturę. Przewodnik po rozwoju pluginów dla WordPress: jak stworzyć swoje własne moduły funkcjonalne od zera

Klasycznym przykładem jest modyfikacja długości opisu artykułu. W standardowym ustawieniu WordPress długość opisu wynosi 55 słów, a my możemy to zmienić. excerpt_length Można to zmienić za pomocą filtrów.

add_filter('excerpt_length', 'mfp_custom_excerpt_length');

function mfp_custom_excerpt_length($length) {
    // 将摘要长度修改为 20 个单词
    return 20;
}

W tym przykładzie funkcja… mfp_custom_excerpt_length Otrzymano wartość długości podstawową. $lengthA potem powrócić do ustawionej przez nas nowej wartości długości – 20. WordPress użyje tej wartości do generowania opisu (ang. „summary”).

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.

Bezpieczeństwo wtyczek oraz najlepsze praktyki ich stosowania

Aby stworzyć popularny plugin, bezpieczeństwo, łatwość konserwacji oraz wydajność muszą być kluczowymi kryteriami. Posłuchanie najlepszych praktyk pomaga uniknąć wielu typowych problemów.

Weryfikacja danych, escape oraz ich przygotowanie (czyli usunięcie niepotrzebnych znaków i ulepszenie ich formatu)

Nigdy nie ufajdanie w dane wprowadzone przez użytkowników ani w dane pochodzące z bazy danych. Przed każdym ich wykorzystaniem konieczne jest ich sprawdzenie, przygotowanie (oczyszczenie) oraz uwzględnienie specjalnych zasad formatowania („escape”).
* 验证(Validation):检查数据是否符合预期的格式或类型(如是否是邮箱、数字等)。可以使用 filter_var() Funkcja lub element w WordPressie sanitize_*() Seria funkcji.
* 清理(Sanitization):清除数据中的非法或危险字符,使其变得安全。对于表单输入,常用 sanitize_text_field()
* 转义(Escaping):在将数据输出到 HTML、JavaScript 或 URL 时,根据上下文进行转义,以防止跨站脚本(XSS)攻击。WordPress 提供了丰富的转义函数,如 esc_html()esc_attr()esc_url()wp_kses_post()

Na przykład, bezpieczne wyświetlenie zmiennej pochodzącej z bazy danych:

// 假设 $user_input 是从数据库或表单获取的数据
echo '<div class="info">'`.esc_html($user_input)`.'</div>';
// 或者,如果允许一些安全的HTML标签
echo '<div class="info">'. wp_kses_post($user_input) . '</div>';

Internacjonalizacja i lokalizacja pluginów

Aby twoje wtyczki były dostępne dla użytkowników z całego świata, konieczne jest dodanie wsparcia dla tłumaczeń – ten proces nazywany jest internacjonalizacją (ang. internationalization, skr. i18n). WordPress wykorzystuje do tego framework GNU gettext.

Najpierw należy wokół wszystkich tekstów, które potrzebują tłumaczenia, zastosować określone funkcje. Najczęściej używana jest funkcja… __()(Do zwracania wartości) i _e()(Znak używany do bezpośredniego wyświetlania wyników.)

Zmienimy tytuł strony zarządzania, którą wcześniej stworzyliśmy:

function mfp_settings_page_html() {
    if (!current_user_can('manage_options')) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
        <p><?php _e('欢迎来到我的第一个插件的设置页面!', 'my-first-plugin'); ?></p>
        ...
    </div>
    &lt;?php
}

Uwaga: Każda funkcja tłumaczeniowa zawiera parametr tekstowy (`my-first-plugin`), który musi odpowiadać informacjom zawartym w nagłówku pliku z pluginem. Text Domain Wszystko jest dokładnie tak, jak powinno być. Następnie możesz użyć narzędzia takiego jak Poedit, aby skanować teksty do tłumaczenia w kodzie pluginu i wygenerować listę zdań, które należy przetłumaczyć. .pot Pliki szablonów, a także pliki w różnych językach. .po.mo Zrób tłumaczenie pliku i umieść go w katalogu z pluginami. /languages/ W folderze.

Podsumowanie.

Przez ten przewodnik systematycznie prześcigliśmy kluczowe etapy rozwoju pluginów dla WordPress. Od przygotowania lokalnego środowiska i stworzenia głównego pliku zawierającego standardowe informacje nagłówkowe, przez wykorzystanie akcji (actions) i hooków filtrów do głębokiej interakcji z core’em WordPress, aż po istotne aspekty bezpieczeństwa i przygotowania pluginu do używania w różnych językach, poznaliśmy już podstawy niezbędne do stworzenia funkcjonalnego, bezpiecznego i niezawodnego pluginu. Pamiętaj, że dobre pluginy powstają dzięki jasnej strukturze kodu, ścisłym zasadom bezpieczeństwa oraz dbałości o użytkownika. Najlepszym sposobem na dalsze uczenie się jest praktyka – zacznij od tworzenia pluginów, które rozwiązują konkretne, małe problemy, a potem stopniowo eksploruj bardziej złożone API i funkcje.

FAQ – najczęściej zadawane pytania.

Jakie są podstawowe wymagania, by rozwijać dodatki do WordPress?

Konieczne jest opanowanie języka programowania PHP, który stanowi podstawę rozwoju WordPress. Ponadto warto mieć podstawową znajomość HTML, CSS i JavaScript, aby móc pracować z interfejsem użytkownika i jego interakcją. Warto też znać podstawowe zasady baz danych MySQL (np. operacje CRUD), ponieważ WordPress używa jej do przechowywania danych. Najważniejsze jest zrozumienie struktury i procesów pracy WordPress.

Jak debugować moje wtyczki dla WordPress?

Najpierw w pliku wp-config.php włącz tryb debugowania WordPress. define('WP_DEBUG', true);define('WP_DEBUG_LOG', true); Ustaw to na „true”. Dzięki temu informacje o błędach będą zapisywane do pliku /wp-content/debug.log, unikając ich wyświetlania bezpośrednio dla odwiedzających. Ponadto integracja profesjonalnych narzędzi do debugowania, takich jak Xdebug, z twoim edytorem kodu (np. VS Code), umożliwi ustawianie punktów przerwania i realizację kroku po kroku w kodzie. Dodatkowo za pomocą paneli sieci i konsoli w narzędziach rozwojowych przeglądarki można sprawdzić żądania AJAX oraz błędy w JavaScriptu na stronie front-end.

Jak mogę złożyć moje stworzone wtyczki do oficjalnego katalogu wtyczek WordPress?

Przed wysłaniem swojego pluginu upewnij się, że pełni wymogi stosowanych standardów kodowania i zaleceń od WordPress oraz że został dokładnie sprawdzony pod kątem bezpieczeństwa. Konieczne jest utworzenie konta na stronie WordPress.org, po czym należy złożyć kompresowany plik pluginu na odpowiedniej stronie. Zespół ds. recenzji sprawdzi twoj kod, aby upewnić się, że jest bezpieczny, zgodny z wymogami i standardami WordPress. Po pozytywnej ocenie twój plugin zostanie dodany do oficjalnego katalogu, gdzie będzie dostępny do pobrania i instalacji przez użytkowników na całym świecie.

Jak dodać opcję ustawienia do WordPress Customizera dla mojego pluginu?

WordPress Customizer umożliwia konfigurację w czasie rzeczywistym z możliwością oglądania wyników zmian w prawdziwym środowisku witryny. Możesz go używać, aby łatwiej dostosować wygląd i funkcje swojej strony internetowej. add_action('customize_register', 'your_function'); Hak. W funkcji wywołanej w odpowiedzi (callback function). your_function W tym przypadku, poprzez… $wp_customize Obiekt zawiera jedną sekcję (Section), jedno ustawienie (Setting) oraz jeden kontroler (Control). Dzięki temu użytkownicy mogą dostosowywać opcje w interfejsie kreatora i natychmiast widzieć efekty tych zmian na stronie internetowej. To idealne rozwiązanie do zarządzania wyglądem tematów i wtyczek.