Przewodnik po rozwoju pluginów dla WordPress: jak stworzyć swój pierwszy funkcjonalny plugin z niczego

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

WordPress, jako najpopularniejszy na świecie system do zarządzania treścią, dzięki swojej wielkiej rozszerzalności jest w stanie dostosować się do potrzeb użytkowników. Można dodawać dowolne, dostosowane funkcje do witryny bez konieczności modyfikacji kodu źródłowego dzięki plikom rozszerzeń (plug-inów). Ten przewodnik pokazać ci, jak stworzyć swoje pierwsze własne rozszerzenie, obejmując każdy kluczowy krok – od przygotowania środowiska, pisania kodu po testowanie i publikację.

Przygotowanie i ustawienie środowiska

Przed napisaniem pierwszego linii kodu potrzebny jest odpowiedni środowisko rozwoju. To nie tylko poprawi efektywność pracy, ale także umożliwi uniknięcie ryzyk związanych z debugowaniem na prawdziwym serwisie internetowym.

Utworzenie lokalnego środowiska rozwoju

Zaleca się używać lokalnych pakietów programów do obsługi serwerów, takich jak XAMPP, MAMP lub Laragon. Te pakety umożliwiają jednorazową instalację Apache, MySQL i PHP, co doskonale simuluje warunki działania w środowisku online. Upewnij się, że Twoja wersja PHP jest kompatybilna z wersją WordPress, którą chcesz używać – na oficjalnej stronie WordPress znajdziesz zwykle informacje o wymaganiach dotyczących najnowszych wersji PHP.

Polecamy lekturę. Pełny przewodnik po tworzeniu pluginów dla WordPressa: stworzenie swojego pierwszego funkcjonalnego pluginu od zera

Wстановienie WordPressa i edytora kodu

Zainstaluj nowy blog na lokalnym serwerze, przeznaczony do rozwoju i testowania pluginów. Wybierz również wydajny edytor kodu, np. Visual Studio Code lub PhpStorm. Te edytory oferują dobrą obsługę sintaksy PHP, wskazówki dotyczące kodu oraz funkcje debugowania, co znacząco poprawia doświadczenie programowania.

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.

Stworz swoj pierwszy plik z rozszerzeniem (plugin).

Najprostszzy plugin dla WordPress może składać się z jednego tylko pliku. Zaczniemy od prostego pluginu “Hello World”, aby zrozumieć strukturę pluginów.

Struktura głównego pliku wtyczki

Najpierw, w WordPress… wp-content/plugins W katalogu utwórz nowy folder, na przykład nazwany „new_folder”. my-first-pluginW tym folderze utwórz plik głównego pluginu, zwykle nazwanego według nazwy samego pluginu. my-first-plugin.php

Każdy plugin musi zawierać w nagłówku pliku specjalne informacje o sobie, które są kluczowe dla identyfikacji pluginu przez WordPress. Poniżej jest przykład najprostszego sposobu implementacji tego wymogu:

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

Po zapisaniu pliku wejdź na stronę “Dodatki” w panelu administracyjnym WordPress i tam ujdziesz na listę dostępnych dodatków – tam też możesz aktywować ten dodatek. Choć na razie nie ma on żadnych funkcji, to udało ci się skonstruować prawidłowo strukturalny framework dodatku.

Polecamy lekturę. Nauczymy cię, jak od zera rozwijać pluginy dla WordPress.

Dodanie podstawowych funkcji do pluginu

Po aktywacji wtyczki dodajmy do niej prostą funkcję: umożliwimy wyświetlenie linii tekstu według ustawień na dole strony internetowej. Będziemy korzystać z funkcji dostępnych w WordPress. wp_footer Hak.

Poniżej komentarzy dotyczących informacji o pluginie dodaj następujący kod:

// 在网站页脚输出自定义文本
function myfp_add_footer_text() {
    echo '<p style="text-align: center;">Dziękuję, że korzystasz z mojego pierwszego pluginu!</p>';
}
add_action( 'wp_footer', 'myfp_add_footer_text' );

Zapisz plik i odśwież stronę internetowej – wtedy u góry strony ujrzysz ten tekst umieszczonej w centralnej pozycji. Ten przykład pokazuje, jak to zrobić. add_action() Funkcja umożliwia “przypięcie” Twojej własnej funkcji do kluczowych punktów wykonywania w WordPress.

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%

Rozwij funkcję zarządzania, która będzie praktyczna w codziennej pracy.

Pełny plugin musi standardowo mieć interfejs konfiguracji w panelu administracyjnym WordPress. Dziś dodamy do pluginu prostą stronę ustawień, która umożliwi administratorowi dostosowanie tekstu wyświetlanego w nagłówku strony.

Tworzenie strony menu zarządzania

Musimy dodać nową stronę z menu podmenu w sekcji “Ustawienia” w backendzie. Do tego potrzebny będzie… add_options_page() Funkcja.

Najpierw należy stworzyć funkcję, która będzie generować treść HTML potrzebną do renderowania strony konfiguracji, a potem tę treść umieścić na odpowiednim miejscu w strukturze aplikacji. admin_menu Na haczu.

Polecamy lekturę. Zaczynamy od zera: dlaczego warto wybrać tworzenie wtyczek do WordPressa?

// 添加插件设置页面到后台菜单
function myfp_add_admin_menu() {
    add_options_page(
        '我的插件设置',          // 页面标题
        '我的插件',              // 菜单标题
        'manage_options',       // 权限(管理员)
        'my-first-plugin',      // 菜单slug
        'myfp_settings_page'    // 用于输出页面内容的回调函数
    );
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );

// 设置页面的HTML内容
function myfp_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>Moje pierwsze ustawienia dla pluginu</h1>
        <form method="post" action="/pl/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'myfp_settings_group' ); // 设置字段组
            do_settings_sections( 'my-first-plugin' ); // 设置区域
            submit_button(); // 提交按钮
            ?>
        <input type="hidden" name="trp-form-language" value="pl"/></form>
    </div>
    &lt;?php
}

Ustawienia rejestracji, pola oraz magazynowanie danych

Nie wystarczy tylko strony internetowej – potrzebujemy skorzystać z API dostępnych w WordPress, aby bezpiecznie rejestrować, sprawdzać i przechowywać dane użytkowników. Do tego potrzebne są trzy kluczowe funkcje:register_setting(), add_settings_section()add_settings_field()

// 初始化插件设置
function myfp_settings_init() {
    // 注册一个新的设置项到数据库的 `wp_options` 表
    register_setting( 'myfp_settings_group', 'myfp_footer_text' );

// 在设置页面添加一个区域
    add_settings_section(
        'myfp_section',
        '页脚文字设置',
        null, // 区域描述回调函数,这里不需要
        'my-first-plugin'
    );

// 在刚添加的区域里创建一个字段
    add_settings_field(
        'myfp_field_footer',
        '显示的文本',
        'myfp_field_footer_cb', // 用于输出字段HTML的回调函数
        'my-first-plugin',
        'myfp_section'
    );
}
add_action( 'admin_init', 'myfp_settings_init' );

// 渲染文本输入字段的回调函数
function myfp_field_footer_cb() {
    $text = get_option( 'myfp_footer_text', '感谢使用我的第一个插件!' ); // 获取已保存的值
    echo '<input type="text" name="myfp_footer_text" value="' . esc_attr( $text ) . '" class="regular-text">'echo '<p class="description">Tekst wprowadzony tutaj będzie wyświetlony w nagłówku strony internetowej.</p>';
}

Możliwość aktualizacji funkcji z użyciem zapisanych ustawień.

Na koniec, zmienimy to, co wcześniej napisaliśmy. myfp_add_footer_text Funkcja umożliwia odczytywanie wartości ustawionych przez administratora z bazy 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.
function myfp_add_footer_text() {
    $footer_text = get_option( 'myfp_footer_text', '感谢使用我的第一个插件!' );
    if ( ! empty( $footer_text ) ) {
        echo '<p style="text-align: center;">'`.esc_html($footer_text).`'</p>';
    }
}
add_action( 'wp_footer', 'myfp_add_footer_text' );

Teraz wejdź do panelu administracyjnego WordPress, wybierz “Ustawienia” → “Moje pluginy”, a potem zmień tekst umieszczonego w nagłówku strony (footer) i zapisz zmiany. Odtworz stronę internetową, a twój własny tekst zostanie wyświetlony.

Bezpieczeństwo pluginów, ich optymalizacja oraz przygotowanie do publikacji

Żaden dobrze przygotowany plugin nie może ignorować zasad bezpieczeństwa, wydajności oraz najlepszych praktyk dotyczących internationalizacji.

Implementacja weryfikacji danych i ich escapeowania

Nigdy nie powinniśmy ufać danym wprowadzonym przez użytkowników ani danym wyświetlonym bezpośrednio z bazy danych. W powyższym przykładzie użyliśmy… esc_attr() Aby umknąć złodziejom danych, należy zaszyfrować dane osobowe, takie jak hasła czy numery kart kredytowych. esc_html() Dla wyjścia z przetworzonymi danymi na frontendzie. W bardziej złożonych przypadkach należy użyć < sanitize_text_field() Aby oczyścić dane wejściowe, użyj… wp_kses_post() To umożliwia bezpieczne wyświetlanie zawartości w formacie HTML.

Dodanie wsparcia dla języków międzynarodowych

Aby plugin był dostępny dla użytkowników z całego świata, konieczne jest przygotowanie tłumaczeń wszystkich tekstów skierowanych do użytkowników. Do tego potrzebny jest specjalny narzędzie lub proces. __()_e() Utworzyć funkcje typu „wait” i „wait_for”, a także deklarować pola tekstowe.

Uaktualizuj komentarze w nagłówku pliku z dodatkiem, aby były poprawne. Text Domain Zgodnie z późniejszymi wywołaniami. Następnie zmodyfikuj teksty zawarte w kodzie, na przykład:

// 在设置字段描述中使用国际化函数
echo '<p class="description">' . esc_html__( '这里输入的文字将显示在网站页脚。', 'my-first-plugin' ) . '</p>';

// 在输出函数中使用
$default_text = __( '感谢使用我的第一个插件!', 'my-first-plugin' );
$footer_text = get_option( 'myfp_footer_text', $default_text );

Później możesz użyć narzędzi takich jak Poedit do tworzenia… .pot Pliki szablonów, które służą tłumaczom do tworzenia tekstów. .po.mo Tłumacz dokumentów.

Przeprowadzenie ostatecznych testów i pakowania.

Przed opublikowaniem należy sprawdzić, czy funkcje pluginu działają poprawnie w różnych środowiskach (na różnych wersjach PHP i WordPress). Upewnij się, że operacje takie jak aktywacja, dezaktywacja, zapis ustawień oraz usunięcie danych nie powodują błędów ani nie pozostawiają niepotrzebnych danych. Możesz napisać funkcję do odinstalowania i czyszczenia pluginu, która zajmie się tym automatycznie. register_uninstall_hook() Opcja czyszczenia bazy danych po usunięciu przez użytkownika dodatków (pluginów).

Na koniec skompresuj folder z twoimi pluginami. .zip Plik. Ten pakiet skompresowany można zainstalować bezpośrednio za pomocą funkcji “Dodawanie plików” w panelu administracyjnym WordPress, a także spełnia wymogi formatu wymaganych przy składaniu plików do oficjalnego katalogu pluginów WordPress.

Podsumowanie.

Dzięki temu poradnikowi udało ci się samodzielnie stworzyć pełnowartościowy plugin dla WordPressa, począwszy od zera. Nauczyłeś się, jak tworzyć podstawowe pliki pluginu, jak dodawać funkcje za pomocą aktywnych huków (action hooks), jak budować interfejs administracyjny za pomocą API WordPressa, a także poznałeś kluczowe aspekty bezpieczeństwa, internationalizacji i pakowania pluginów. Choć ten prosty plugin do tekstów na dole strony jest bardzo podstawowy, to struktura pluginu, mechanizmy huków oraz API do konfiguracji stanowią fundamenty dla tworzenia dowolnych złożonych pluginów. Teraz możesz spróbować eksplorować bardziej zaawansowane funkcje, takie jak shortcode’y, dostosowane typy artykułów czy punkty końcowe (endpoints) API REST, aby stopniowo rozwijać swoje umiejętności programowania pluginów.

FAQ – najczęściej zadawane pytania.

Czy aby rozwijać dodatki do WordPress, konieczne jest znajomość PHP?

Tak, PHP jest językiem programowania kluczowym przy tworzeniu WordPressa oraz jego dodatków (pluginów). Musisz opanować podstawy gramatyki PHP, funkcje, tabele (arrayy) oraz zasady programowania obiektowego. Wiedza o HTML, CSS i podstawach JavaScriptu również będzie przydatna przy tworzeniu dodatków zawierających interfejsy użytkownika.

Czy nazwa głównego pliku wtyczki może być dowolna?

Można, ale musi to odpowiadać nazwie głównego pliku PHP znajdującego się w folderze z pluginami. Zwykle, dla lepszej wyrazności, nazwa głównego pliku jest identyczna z nazwą foldera z pluginami albo ma taką samą nazwę. index.phpNajważniejsze jest to, że nagłówek pliku musi zawierać poprawny blok komentarzy z informacjami o pluginie – to właśnie na podstawie tego bloku WordPress identyfikuje pluginy.

Dlaczego ustawienia mojego pluginu nie są stosowane po ich zapisaniu?

Proszę sprawdzić problem według następujących kroków: Najpierw upewnij się, że wszystkie pola konfiguracji zostały poprawnie ustawione. register_setting() Zarejestrowano poprawnie, a… settings_fields() Nazwa grupy ustawień musi odpowiadać nazwie wywołanej funkcji. Następnie sprawdź, czy formularz jest poprawnie wypełniony. action Czy atrybut wskazuje na coś konkretnego? options.phpNa koniec, przy wyświetlaniu na stronie klienta („frontend”), upewnij się, że używasz właśnie tej wersji kodu. get_option() Funkcja, przy czym nazwy przekazanych opcji są identyczne z tymi, które zostały zarejestrowane podczas jej tworzenia.

Jak sprawić, aby mój plugin usuwał dane po jego wyłączeniu?

Możesz użyć register_uninstall_hook() Funkcja służy do rejestracji „hooka” odnoszącego się do procesu odinstalowania programu. W zdefiniowanym w tym hooku funkcji odwołującej można wykonać określone operacje. delete_option() Funkcja służy do usunięcia wszystkich opcji baz danych utworzonych przez dodatek. Podkreślamy, że działanie to jest nieodwracalne, więc należy je wykonać wyłącznie wtedy, gdy użytkownik wyraźnie wybierze opcję “Usunąć” dodatek, a nie “Wyłączyć” go.

Czy można złożyć darmowe pluginy do oficjalnego katalogu WordPress?

Tak, WordPress oficjalnie zachęca deweloperów do składania darmowych pluginów, które spełniają określone standardy, do swojego katalogu pluginów. Aby to zrobić, musisz mieć konto na stronie WordPress.org oraz uważnie przeczytać instrukcje dotyczące składania pluginów. Twój kod musi spełniać określone wymogi dotyczące formatowania i nie może zawierać żadnego złośliwego oprogramowania ani naruszać warunków licencji. Po sukcesowym złożeniu pluginu użytkownicy będą mogli go wyszukać i zainstalować bezpośrednio z panelu administracyjnego WordPress.