Od podstaw: kompletny przewodnik po tworzeniu wtyczek do WordPressa wraz z praktycznymi poradami.

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

Przygotowanie i ustawienie środowiska

Przed tworzeniem wtyczki dla WordPress jest niezbyt ważne stworzenie stabilnego środowiska lokalnego do rozwoju. Dzięki temu będzie można testować i naprawiać błędy, nie wpływając na działanie witryny online.

Wybór i konfiguracja środowiska rozwoju lokalnego

Najważniejszym krokiem jest uruchomienie lokalnego serwera, w którym zostały zintegrowane PHP, MySQL oraz Apache/Nginx. Możesz wybrać jeden z dostępnych rozwiązań…MAMPXAMPPTakie pakety integracyjne oferują łatwe sposoby instalacji zarówno na Windows, jak i na macOS. Dla zaawansowanych użytkowników dostępne są dodatkowe opcje konfiguracji.DockerKontenerizacja środowiska rozwojowego jest aktualnie najlepszą praktyką, ponieważ zapewnia jednolikowość środowiska i ułatwia jego kopiowanie. Bez względu na wybrany sposób upewnij się, że twoja wersja PHP jest kompatybilna z wersją, dla której są przeznaczone dodatki (np. PHP 7.4 lub wyższa), a także włącz niezbędne rozszerzenia PHP, takie jak MySQLi lub PDO.

Zainstaluj i skonfiguruj WordPress.

Po przygotowaniu lokalnego środowiska serwerowego konieczne jest zainstalowanie core’a WordPressa. Skorzystaj z oficjalnej strony WordPress.org, aby pobrać najnowszą, stabilną wersję, a następnie rozpakuj ją w korzenowym katalogu witryny na serwerze (na przykład: /www/).htdocswwwZnajduje się on w folderze poddanym określonym wymogom. Następnie otwórz ten folder w przeglądarcu i dokonaj konfiguracji według popularnych “kroków instalacji trwających pięć minut”. Zaleca się stworzyć specjalną bazę danych przeznaczoną do rozwoju pluginów oraz zapisać nazwę bazy danych, nazwę użytkownika i hasło. Po instalacji wejdź do panelu administracyjnego WordPress i ustaw strukturę stałych linków na format inny niż standardowy (na przykład “nazwa artykułu”), co pomoże sprawdzić kompatywność pluginu z tymi linkami.

Polecamy lekturę. Wprowadzenie do tworzenia motywów w WordPressie: budowanie swojego pierwszego niestandardowego motywu od podstaw.

Rekomendacje niezbędnych narzędzi do rozwoju:

Efektywny rozwój nie może odbywać się bez przydatnych narzędzi. Najpierw potrzebny jest edytor kodu – na przykład taki, który jest bezpłatny i wyposażony w wiele funkcji.Visual Studio CodeNależy zainstalować pluginy przyjazne dla PHP, WordPress oraz funkcji inteligentnego rozpoznawania kodu. Ponadto konieczne jest uzyskanie narzędzia do zarządzania wersjami kodu.GitTo niezbędne narzędzie do zarządzania zmianami w kodzie oraz odwoływania wcześniejszych wersji programu. Narzędzia do rozwoju w browserach (Chrome DevTools lub Firefox Developer Edition) są kluczowe podczas debugowania kodu na stronie front-end. Na koniec zastanów się nad instalacją narzędzia do sprawdzania jakości kodu.PHP_CodeSnifferPołączenieWordPress-Coding-StandardsZbiór zasad, który pomaga ci stosować oficjalne standardy kodowania 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.

Podstawa architektury pluginów i kluczowe pliki

Standardowy plugin dla WordPressa posiada określony katalog i strukturę plików. Posłuchanie tych zasad jest warunkiem rozpoznania pluginu przez system oraz jego skutecznego zarządzania.

Podstawowy skład pliku głównego oraz jego funkcje

Każdy plugin musi mieć główną plikę w formacie PHP, która stanowi wejście do pluginu. W komentarzach na początku tej pliki znajdują się metadane pluginu, które są kluczowe dla jego rozpoznawania przez WordPress. Poniżej jest przykład najprostszego pliku głównego pluginu.my-first-plugin.phpPrzykład:

<?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
 */

// 防止直接文件访问
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

Plugin NameTo jedyny obowiązkowy polu, które jest używane do wyświetlania listy wtyczek w tle aplikacji. Zaleca się, aby je definiować.ABSPATHSprawdź, aby zapobiecć bezpośredniemu dostępu złośliwych użytkowników do kluczowych plików wtyczki.

Dodanie funkcjonalnego kodu podstawowego do pluginu

Po umieszczeniu komentarza w nagłówku możesz zacząć pisać kod realizujący funkcje pluginu. Najprostszym przykładem jest dodanie przekazu “Hello World” do panelu administracyjnego. Możesz użyć…add_actionHak umożliwia montaż własnej funkcji w określonym punkcie wykonywania w WordPress.

Polecamy lekturę. Zaczynamy od zera: kompletny przewodnik i praktyczny samouczek dotyczący tworzenia wtyczek do WordPressa.

/**
 * 在管理后台顶部显示欢迎信息
 */
function myfp_display_admin_notice() {
    echo '<div class="notice notice-success is-dismissible"><p>Chcemy, abyś korzystał z “Mojego pierwszego pluginu” z przyjemnością!</p></div>';
}
add_action( 'admin_notices', 'myfp_display_admin_notice' );

Aby zachować organizację kodu i uniknąć konfliktów nazw, wszystkie nazwy funkcji i klas muszą zawierać unikalny prefiks.myfp_(Moje pierwsze wtyczki / My First Plugins).

Zasady organizacji katalogu pluginów i plików zasobów

Plugin z nieco bardziej złożoną funkcjonalnością składa się zwykle z kilku plików. Rozsądna struktura katalogów znacząco poprawia łatwość utrzymania pluginu. Najpopularniejsze sposoby organizacji plików to:
- /assets/Zbiórka statycznych zasobów, takich jak CSS, JavaScript, zdjęcia i fonty.
- /includes/Zawiera kluczowe pliki z klasami PHP oraz pliki z funkcjami.
- /admin/Zawierają pliki PHP, CSS i JS, które są powiązane wyłącznie z administracyjnym interfejsem.
- /public/Zawiera pliki dotyczące frontendu witryny internetowej.
- /languages/Miejsce na pliki z tłumaczeniami międzynarodowymi (.po, .mo).

Zawsze pamiętaj, że plik głównego pluginu znajduje się w katalogu głównym danego pluginu. Podczas referencjowania plików zasobów w kodzie należy używać odpowiednich nazw i pathów.plugin_dir_url( FILE )plugin_dir_path( FILE )Udostępnia się dynamiczny sposób uzyskania poprawnego adresu URL lub ścieżki na serwerze.

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%

Mechanizm hooków interaktywnie współpracuje z core API.

Soulą rozwoju pluginów dla WordPress jest mechanizm zwany “hookami” (hooks), który umożliwia włączenie Twojego kodu w określonych momencach działania systemu WordPress, tematów lub innych pluginów i jego uruchomienie.

Rozumienie hooków akcji (action hooks) i hooków filtrów (filter hooks)

Hakówki (hooks) dzielą się na dwie główne kategorie: akcje (Actions) i filtry (Filters). Hakówki typu akcja są używane do wykonywania Twojego kodu w momencie wydarzenia określonego, na przykład po opublikowaniu artykułu lub przed załadowaniem danej strony. Nie wracają żadnej wartości, po prostu “wykonują” określone zadanie. Podstawową funkcją używaną w tym przypadku jest…add_action()do_action()Funkcje hooków filtrów służą do modyfikacji danych. Możesz interweniować i zmieniać dane przed ich użyciem, zapisem lub wyświetleniem. Funkcje hooków muszą zwrócić jakąś wartość. Najważniejszą funkcją używaną w tym kontekście jest…add_filter()apply_filters()

Przypisanie własnych funkcji do standardowych hooków

Źródło WordPressa oferuje setki standardowych „hooków” (zdarzeń, które można wykorzystać w kodzie). Na przykład można automatycznie dodawać informację o prawach autorskich na końcu treści artykułu, co wymaga użycia zarówno funkcji typu „akcji” (actions), jak i „filtrów” (filters).

Polecamy lekturę. Od podstaw do zaawansowanych umiejętności w tworzeniu wtyczek WordPress: praktyczny przewodnik po tworzeniu niestandardowych funkcji.

// 使用过滤器修改文章内容
function myfp_add_copyright_to_content( $content ) {
    if ( is_single() ) {
        $copyright_text = '<p><em>Przed publikacją prosimy o wskazanie źródła.</em></p>';
        $content .= $copyright_text;
    }
    return $content;
}
add_filter( 'the_content', 'myfp_add_copyright_to_content' );

// 使用动作在文章保存时执行操作
function myfp_log_post_publish( $post_id ) {
    // 记录日志或执行其他后处理
    error_log( "文章 ID {$post_id} 已发布。" );
}
add_action( 'publish_post', 'myfp_log_post_publish' );

Tworzenie i dostarczanie dostosowanych „hooków” (elementów interfejsu) umożliwiających rozszerzanie funkcjonalności systemu.

Dobrze zaprojektowany plugin powinien też umożliwić innym programistom jego rozszerzanie. Możesz to zrobić, tworząc własne, dostosowane „haki” (ang. hooks). To pokazuje otwarcie architektury pluginów oraz jest w zgodzie z filozofią samego WordPress.

// 定义一个自定义动作钩子
function myfp_process_data() {
    $data = '一些初始数据';
    // 其他开发者可以通过 ‘myfp_before_action’ 在此处插入代码
    do_action( 'myfp_before_action', $data );

// 插件的主要处理逻辑...

// 其他开发者可以通过 ‘myfp_after_action’ 在此处插入代码
    do_action( 'myfp_after_action', $data );
}

// 定义一个自定义过滤器钩子
function myfp_get_output() {
    $output = '默认输出';
    // 允许其他开发者过滤最终的输出
    return apply_filters( 'myfp_filter_output', $output );
}

Stworzenie interfejsu do zarządzania pluginami oraz opcji konfiguracji

Większość wtyczek wymaga interfejsu administracyjnego, który umożliwia użytkownikowi konfigurację. WordPress oferuje różne API, które pomagają w szybkim i bezpiecznym tworzeniu standardowych stron ustawień i opcji.

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.

Używanie API do konfiguracji opcji bezpieczeństwa

WordPress API do konfiguracji to bezpieczny framework do obsługi formularzy, weryfikacji, przechowywania oraz wyświetlania danych. Automatycznie obsługuje pola bezpieczeństwa typu „nonce” oraz sprawdza uprawnienia użytkowników. Podstawowe kroki przy tworzeniu strony konfiguracji to: 1) rejestracja nowej konfiguracji, 2) dodawanie bloków konfiguracyjnych oraz 3) dodawanie poszczególnych polów. Niżej podany kod pokazuje, jak zarejestrować prostą konfigurację:

function myfp_register_settings() {
    register_setting(
        'myfp_settings_group', // 选项组名
        'myfp_option_name',    // 选项名(存储在wp_options表中)
        array( 'sanitize_callback' => 'myfp_sanitize_callback' ) // 消毒回调函数
    );

add_settings_section(
        'myfp_settings_section', // 区块ID
        '基本设置',               // 区块标题
        'myfp_section_callback', // 区块回调函数(可输出描述)
        'myfp-settings-page'     // 设置页面Slug
    );

add_settings_field(
        'myfp_text_field',      // 字段ID
        '示例文本输入',         // 字段标签
        'myfp_text_field_callback', // 字段回调函数(输出HTML表单域)
        'myfp-settings-page',   // 页面Slug
        'myfp_settings_section' // 所属区块ID
    );
}
add_action( 'admin_init', 'myfp_register_settings' );

Tworzenie stron z menu i podmenü w różnych lokalizacjach

Musisz dodać link do strony z ustawieniami do menю administracji WordPress. Użyj do tego odpowiedniej funkcji w panelu konfiguracji WordPress.add_menu_page()Można stworzyć menu najwyższego poziomu (top-level menu) i użyć go do organizacji zawartości strony.add_submenu_page()Można stworzyć podmenü.

function myfp_add_admin_menu() {
    // 添加顶级菜单
    add_menu_page(
        '我的插件设置',        // 页面标题
        '我的插件',            // 菜单标题
        'manage_options',     // 权限能力
        'myfp-settings-page', // 菜单Slug
        'myfp_render_settings_page', // 渲染页面的回调函数
        'dashicons-admin-generic', // 图标(可选)
        80                    // 菜单位置
    );

// 添加子菜单(指向同一个页面,但菜单标题不同)
    add_submenu_page(
        'myfp-settings-page', // 父菜单Slug
        '关于此插件',         // 页面标题
        '关于',              // 菜单标题
        'manage_options',    // 权限能力
        'myfp-about-page',   // 菜单Slug
        'myfp_render_about_page' // 渲染回调
    );
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );

Funkcja zwrotna (callback) dla renderowania strony z ustawieniami dostosowanymi

myfp_render_settings_pageFunkcja wywołania zwrotnego (callback function) jest odpowiedzialna za generowanie struktury HTML strony konfiguracji. W tej funkcji należy wykonać odpowiednie wywołania.settings_fields()do_settings_sections()Wyświetl pola zarejestrowane za pomocą API ustawień (Settings API).

function myfp_render_settings_page() {
    // 检查用户权限
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    ?&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
            settings_fields( 'myfp_settings_group' );
            do_settings_sections( 'myfp-settings-page' );
            submit_button( '保存设置' );
            ?>
        <input type="hidden" name="trp-form-language" value="pl"/></form>
    </div>
    &lt;?php
}

Podsumowanie.

Rozwoj pluginów dla WordPress polega na przekształceniu kreatywnych idei w funkcjonalne rozwiązania. Jeśli chodzi o sukces w tym procesie, kluczową rolę odgrywa jasne rozumienie podstawowej struktury systemu, biegłe korzystanie z mechanizmów wzajemnej łączności pomiędzy różnymi elementami aplikacji („hooków”) oraz ciągłe dbanie o bezpieczeństwo i przyjazność użytkownika. Od przygotowania środowiska rozwoju, pisania podstawowych plików programu, poprzez integrację z funkcjami WordPress za pomocą akcji („actions”) i filtrów („filters”), aż po tworzenie profesjonalnych interfejsów administracyjnych za pomocą API – każdy krok jest realizowany zgodnie z ustalonymi standardami i najlepszymi praktykami. Ważne jest utrzymywanie modułowości, czytelności i rozszerzalności kodu, używanie unikalnych prefiksów aby uniknąć konfliktów oraz zawsze stawianie bezpieczeństwa na pierwszym miejscu. Dzięki nauki i praktyce z tego przewodnika posiadasz już umiejętność tworzenia kompletnych, standardowych pluginów dla WordPress.

FAQ – najczęściej zadawane pytania.

Jaki poziom znajomości programowania jest wymagany do tworzenia wtyczek (pluginów) dla WordPressu na bazie pliku ###?
Aby rozwijać pluginy dla WordPress, konieczne są podstawowe znajomości języka programowania PHP, w tym gramatyki, funkcji, tablic oraz zasad programowania obiektowego. Podobnie istotne jest posiadanie ogólnej wiedzy o technologiach front-end, takich jak HTML, CSS i JavaScript, co znacznie ułatwia tworzenie pluginów z interfejsem użytkownika. Dobrze też znać podstawowe operacje nad bazą danych MySQL, ponieważ WordPress intensywnie korzysta z jej zasobów.

Jak debugować wdrożony w WordPress plugin w trakcie jego rozwoju?

Istnieje kilka sposobów na debugowanie pluginów. Najpierw…wp-config.phpUwolniono dostęp do pliku.WP_DEBUGWP_DEBUG_LOGTo umożliwi zapisywanie błędów i ostrzeżzeń PHP do odpowiedniego pliku./wp-content/debug.logDane znajdują się w pliku, ale nie są wyświetlone użytkownikowi na stronie internetowej. Ponadto, aby odkryć i naprawić błędy w kodzie JavaScript oraz sprawdzić działanie żądań internetowych, można użyć narzędzi do rozwoju w przeglądarcu (np. Chrome DevTools). W przypadku złożonej logiki można skorzystać z dodatkowych narzędzi lub metod rozwojowych.var_dump()error_log()Funkcje mogą wyświetlać wartości zmiennych w logach lub na stronie internetowej. Ponadto instalacja profesjonalnych narzędzi do debugowania PHP, takich jak Xdebug, w połączeniu z twoim edytorem kodu, umożliwia używanie punktów przerwania podczas debugowania, co jest najskuteczniejszym sposobem na wykrywanie błędów w kodzie.

Jak moja wtyczka może zostać przygotowana do obsługi wielu języków (internacjonalizacji)?

Aby zrealizować funkcjonalność internacionalizacji (i18n) w WordPressie, używa się przede wszystkim narzędzi dostępnych w ramach tej platformy.__()_e()_x()Funkcje do tłumaczeń. W kodzie pluginu wszystkie teksty, które wymagają tłumaczenia, należy umieścić w zagnieżdżeniu tych funkcji, wskazując przy tym domenę tekstową (Text Domain), którą określono w komentarzach na początku pliku pluginu.Text DomainNastępnie, za pomocą narzędzia takiego jak Poedit, skanuj kod źródłowy pluginu, aby wygenerować….potPliki szablonów – na ich podstawie tłumacze tworzą wersje tekstów w różnych językach..poI po skompilowaniu..moPliki. Na koniec umieść te pliki z tłumaczeniami w folderze z pluginem./languages/Bieżący plik znajduje się w katalogu, a jest używany podczas inicjalizacji wtyczki.load_plugin_textdomain()Funkcje są używane do ich ładowania.

Jak umożliwić darmowe udostępnienie mojego plugina w oficjalnym katalogu pluginów WordPress?

Aby opublikować plugin w oficjalnym katalogu WordPress, należy spełnić kilka wymagań. Najpierw upewnij się, że twój plugin jest w pełni zgodny z licencją GPL w wersji 2 lub wyższej. Następnie sprawdź jakość i bezpieczeństwo kodu, stosując standardy programowania WordPress. Po tym konieczne jest utworzenie konta na stronie WordPress.org i złożenie pluginu w sekcji przeznaczonej dla developerów. Przed złożeniem pluginu upewnij się, że posiada dokładne i dobrze formatowane informacje opisujące jego funkcje.readme.txtPlik został przygotowany w specjalnym formacie Markdown i uwzględniono aspekty związane z internationalizacją. Po złożeniu pliku do recenzji, zespół specjalistów sprawdzi go – ten proces może trwać od kilku dni do kilku tygodni. Po pozytywnej ocenie twój plugin będzie dostępny do wyszukiwania i instalacji w oficjalnym katalogu.