Od poznania podstaw do osiągnięcia biegłości: Pełny przewodnik i praktyczne kursy rozwoju pluginów dla WordPress

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

Przygotowanie i konfiguracja środowiska

Przed rozpoczęciem jakiegoś rzeczywistego kodowania istotne jest stworzenie stabilnego i wydajnego lokalnego środowiska rozwoju. To środowisko będzie stanowić „skrzynię bezpieczeństwa” dla wszystkich działań związanych z tworzeniem, testowaniem i debugowaniem dodatków (pluginów), co zapewni, że nie wpłyną one na działanie witryny online w środowisku produkcyjnym.

Najwygodniejszy sposób to użycie oprogramowania do integracji lokalnego serwera, takiego jak XAMPP, MAMP (dostępne dla Mac) lub Local by Flywheel. Te narzędzia w jednym kroku instalują Apache (lub Nginx), bazę danych MySQL oraz PHP, co doskonale odpowiada wymaganiom WordPress. Po uruchomieniu lokalnego serwera należy pobrać najnowszą wersję plików core WordPress, rozpakować je do korzenowego katalogu witryny serwera (np. htdocs lub www) i zgodnie z popularnym procedurą “wpięcia w działanie w ciągu pięciu minut” („five-minute setup”) uruchomić witrynę WordPress.

Następnie potrzebny będzie doświadczony editor kodu. Choć każdy tekstowy editor będzie wystarczający, używanie narzędzi specjalnie zaprojektowanych dla programistów (np. Visual Studio Code, PhpStorm lub Sublime Text) znacząco poprawi twoją efektywność. Te editory oferują funkcje takie jak wyświetlanie zasad gramatyki, automatyczne dopowiadanie kodu, ostrzegawanie przed błędami oraz integrację z terminalem. Zdecydowanie zaleca się instalowanie w swoim editorze dodatków (pluginów) dostosowanych do WordPress, które ułatwiają pracę przy pisaniu kodu i poprawiają rozpoznawanie struktury projektu.

Polecamy lekturę. Przewodnik po rozwoju pluginów dla WordPress: jak stworzyć swój pierwszy własny plugin od zera

Na koniec, aby ułatwić zarządzanie wersjami kodu i współpracę w zespole, konieczne jest zapoznanie się z systemem kontroli wersji.Git To aktualnie najpopularniejszy wybór. Utwórz kopię w katalogu twojego projektu. Git Możesz tworzyć repozytoria lokalne i powiązywać je z repozytoriami w chmurze (np. GitHub, GitLab lub Bitbucket). To nie tylko umożliwia tworzenie kopii Twoich prac, ale także umożliwia łatwe śledzenie każdej zmiany w kodzie.

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.

Stworzenie twojego pierwszego pluginu dla WordPress

Zacznijmy od stworzenia najprostszego, ale dobrze zorganizowanego pluginu, co pomoże ci zrozumieć jego podstawową strukturę. Plugin dla WordPress składa się w istocie z jednego lub kilku plików PHP, umieszczonego w określonym miejscu w strukturze witryny. /wp-content/plugins/ Znajduje się w katalogu i informuje WordPress o swoim istnieniu poprzez zawarcie specjalnego typu komentarza na początku pliku.

Najpierw wejdź. /wp-content/plugins/ Utworź nowy folder o nazwie twojego pluginu, na przykład: my-first-pluginW tym folderze utwórz plik głównego pluginu, który zwykle nosi nazwę identyczną z nazwą foldera, z dodatkowym rozszerzeniem. .php Sufiksy, np. my-first-plugin.phpOtworź ten plik za pomocą swojego edytora kodu.

Napisanie informacji na początku pliku głównego pluginu

Na początku pliku rozszerzenia musi znajdować się blok komentarzy dokumentacyjnych w standardowym formacie PHP. Te informacje w nagłówku są kluczowe dla identyfikacji i wyświetlania rozszerzenia w interfejsie administracyjnym WordPress. Wpisz następujący kod:

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

Po zapisaniu pliku loguj się do panelu administracyjnego WordPress, wejdź do menu “Dodatki” (Plugins) i powinno pojawić się tam “Moje pierwsze dodatko” w liście dostępnych pluginów. Możesz tu aktywować lub dezaktywować ten dodatek. Na razie ten dodatek nie robi nic specjalnego, ale udało ci się stworzyć plugin, który jest przyjęty przez system WordPress.

Polecamy lekturę. Od zera do jednego: Autorytetywny przewodnik i praktyczny kurs rozwoju pluginów dla WordPressa

Dodaj pierwszą funkcję do pluginu.

Teraz dodajmy do tego pluginu prostą funkcję: umożliwimy dodanie linii tekstu dowolnego zawartości w nagłówku strony (footer) witryny. Będziemy korzystać z możliwości dostępnych w WordPress. wp_footer Aby to zrealizować, należy użyć „haków” (ang. hooks). Dodaj następujący kod poniżej informacji w nagłówku w pliku głównego pluginu:

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

Po zapisaniu pliku odśwież stronę swojego witryny i przesuń się na dno strony – powinienś zobaczyć dodany tekst. Poprzez ten przykład zapoznałeś się z dwoma kluczowymi konceptami rozwoju w WordPress: napisaniem funkcji, która pełni określony cel, a potem z jej użyciem w ramach aplikacji. add_action() Funkcja jest przypiązana („hookowana”) do określonego punktu w życiowym cyklu WordPress.wp_footer)。

W głąb tematu: haczyki (hooks) i filtry

Hooki to istota rozwoju pluginów w WordPress. Dzięki nim można włączyć własny kod w określone punkty wykonywania kodu podstawowego WordPress, tematów lub innych pluginów, bez konieczności modyfikacji oryginalnych plików. Hooki są głównie podzielone 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%

Zrozumienie i wykorzystanie hooków akcji.

Aktywnie działające „haki” (ang. action hooks) umożliwiają wykonywanie własnych funkcji w momencie wystąpienia określonych zdarzeń. Na przykład, gdy zostanie opublikowany artykuł…publish_postGdy użytkownik się loguje…wp_login) albo tak, jak robiliśmy wcześniej, przy wyświetlaniu na dole strony („footer”).wp_footer(Nie używaj więcej niż dwóch kolorów). Użyj add_action() Funkcja do dodawania twojej funkcji obsługiwania wywołań (callback function).

Poniżej jest przykład, który pokazuje, jak można to zrealizować w praktyce: gdy nowy użytkownik się zarejestruje, wysyła się wiadomość e-mail do administratora jako powiadomienie.

/**
 * 新用户注册时通知管理员
 * @param int $user_id 新注册用户的ID
 */
function myfp_notify_admin_on_registration( $user_id ) {
    $user = get_userdata( $user_id );
    $admin_email = get_option( 'admin_email' );
    $subject = '有新用户注册!';
    $message = sprintf( '新用户 %s (邮箱:%s) 刚刚完成了注册。', $user->user_login, $user->user_email );
    wp_mail( $admin_email, $subject, $message );
}
add_action( 'user_register', 'myfp_notify_admin_on_registration' );

Opanuj potężne możliwości filtrów.

Hooki filtrów umożliwiają modyfikację danych przekazywanych w ramach procesu. Możesz zmieniać tekst, wartości opcji, parametry zapytów oraz prawie wszystko inne. Filtry są wykorzystywane do przetwarzania danych. apply_filters() Funkcja definiuje punkty danych i je używa. add_filter() Funkcja do dodawania twoich zmian do istniejącej funkcji.

Polecamy lekturę. Kompletny przewodnik po tworzeniu wtyczek WordPress: praktyczny poradnik od podstaw do publikacji i uruchomienia.

Na przykład chcesz automatycznie dodawać informację o prawach autorskich na końcu każdego tekstu umieszczonego w artykułach.

/**
 * 在所有文章内容末尾添加版权声明
 * @param string $content 原始文章内容
 * @return string 修改后的文章内容
 */
function myfp_add_copyright_to_content( $content ) {
    if ( is_single() ) { // 仅在单篇文章页面生效
        $copyright_text = '<div class="my-copyright">© Wszelkie prawa zastrzeżone. Zakazuje się kopiowanie i rozpowszechnianie.</div>';
        $content .= $copyright_text;
    }
    return $content;
}
add_filter( 'the_content', 'myfp_add_copyright_to_content' );

Rozumienie różnic oraz zasad stosowania działań (wykorzystywanych do wykonywania zadań) i filtrów (wykorzystywanych do modyfikacji danych) jest kluczowym elementem na drodze do zostania doświadczonym programistą WordPress.

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.

Rozwój zaawansowany: architektura pluginów i bezpieczeństwo

Wraz z rosnącą liczba funkcji wtyczek staje się coraz trudniejsze utrzymywać cały kod w jednym głównym pliku. Dobra struktura projektu jest kluczowa. Ponadto bezpieczeństwo musi być uwzględnione we wszystkich etapach rozwoju.

Tworzenie architektury pluginów łatwej w utrzymaniu

Typowy katalog z plikami rozszerzeń (plug-inów), który charakteryzuje się jasną strukturą, może wyglądać następnie:

my-advanced-plugin/
├── my-advanced-plugin.php      // 主插件文件,负责引导和核心设置
├── includes/                   // 核心功能类或函数文件
│   ├── class-core.php         // 主功能类
│   ├── class-admin.php        // 后台管理逻辑
│   └── class-public.php       // 前端逻辑
├── admin/                     // 后台相关资源
│   ├── css/
│   ├── js/
│   └── partials/             // 管理页面模板
├── public/                    // 前端相关资源
│   ├── css/
│   ├── js/
│   └── partials/
├── assets/                    // 共享资源,如图标、图片
├── languages/                 // 国际化语言文件
└── uninstall.php             // 插件卸载时执行的清理代码

W pliku z głównym pluginem należy to użyć. require_once Można importować pliki z innych katalogów według potrzeb. Taka struktura modułowa sprawia, że rola poszczególnych elementów kodu jest jasno określona, co ułatwia współpracę w zespole oraz dalszą rozwój aplikacji.

Wdrożenie kluczowych zasad bezpieczeństwa jest niezbędne.

W ekosystemie WordPress bezpieczeństwo nie może być ignorowane. Poniżej są przedstawione zasady, które należy stosować:

1. Weryfikacja danych (Validation): Sprawdzenie wszystkich niepoważnych danych pochodzących od użytkowników lub z zewnętrznych źródeł. $_GET, $_POST, $_COOKIEKonieczna jest weryfikacja, aby upewnić się, że wszystko jest w zgodzie z oczekiwanym formatem. Do tego celu można użyć funkcji takich jak… sanitize_text_field(), intval(), filter_var()
2. Ucieczka znaków (Escaping): Przed wyświetleniem jakichkolwiek danych w przeglądarcu (HTML, JavaScript, URL-ów) konieczna jest ich ucieczka, aby zapobiec atakom typu XSS (Cross-Site Scripting). Do tego celu można używać odpowiednich funkcji. esc_html(), esc_js(), esc_url()
3. Sprawdzenie uprawnień (Capability Checks): Przed wykonywaniem operacji administracyjnych lub dostępem do danych poufnych zawsze sprawdź, czy aktualny użytkownik posiada odpowiednie uprawnienia. current_user_can() Funkcja.
4. Weryfikacja numeru jednorazowego (Nonce Verification): W przypadku wszystkich żądań wymagających zmian w danych (np. wysyłania formularzy, operacji AJAX) konieczne jest użycie numeru jednorazowego (Nonce) do weryfikacji intencji i źródła żądania, aby zapobiec falsyfikacji żądań między witrynami (CSRF – Cross-Site Request Forgery).

Poniżej jest przykład implementacji funkcji zapisu ustawień, która uwzględnia zasady bezpieczeństwa:

// 在表单提交处理中
function myfp_save_settings() {
    // 1. 检查权限
    if ( ! current_user_can( 'manage_options' ) ) {
        wp_die( '权限不足。' );
    }

// 2. 验证 Nonce
    if ( ! isset( $_POST['myfp_settings_nonce'] ) || ! wp_verify_nonce( $_POST['myfp_settings_nonce'], 'myfp_save_action' ) ) {
        wp_die( '安全校验失败,请重试。' );
    }

// 3. 验证和清理输入数据
    $option_value = sanitize_text_field( $_POST['my_option'] );

// 4. 保存到数据库 (update_option 有自己的数据清理机制,但我们已经做了)
    update_option( 'myfp_custom_option', $option_value );

// 5. 重定向并添加成功消息
    wp_redirect( add_query_arg( 'message', 'saved', admin_url( 'admin.php?page=myfp-settings' ) ) );
    exit;
}
add_action( 'admin_post_myfp_save_settings', 'myfp_save_settings' );

Podsumowanie.

Rozwoj pluginów dla WordPress to proces, który polega na zrozumieniu podstawowej struktury systemu, dalszym pogłębianiu wiedzy o mechanizmach hooków, aż po opanowanie budowy bezpiecznych i łatwo utrzymywanych aplikacji. Poprzez stworzenie prostego pluginu nauczyłeś się, jak sprawić, aby WordPress rozpoznał twój kod. Za pomocą hooków akcji (actions) i filtrów (filters) poznałeś kluczowe sposoby interakcji z jądrzem WordPress, umożliwiając rozszerzanie funkcji i dostosowywanie danych. Na koniec, poprzez planowanie architektury projektu oraz stosowanie standardów bezpieczeństwa, zapewniłeś stabilność, rozszerzalność i odporność na zagrożenia twojego pluginu. Dzięki regularnym ćwiczeniom, czytaniu źródłowego kodu oraz udziałowi w społeczności developerów WordPressu, możesz przekroczyć poziom początkującego i stworzyć profesjonalne pluginy.

FAQ – najczęściej zadawane pytania.

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

Konieczne jest posiadanie podstawowych znanych z języka programowania PHP, ponieważ większość pluginów jest pisana w tym języku. Podstawowe znania HTML, CSS i JavaScriptu będą przydatne przy tworzeniu pluginów wymagających interakcji z użytkownikiem na stronie internetowej. Zrozumienie podstawowych konceptów baz danych MySQL (takich jak wykonywanie zapytań, dodawanie, edytowanie i wyświetlanie danych) również pomogą w obsłudze złożonych danych. Najważniejsze jest jednak zapoznanie się z core’owymi elementami WordPressa, takimi jak artykuły (Posts), strony (Pages), role użytkowników (User Roles) oraz systemem hooków, o którym wspomniano w szczegółach powyżej.

Jak dodać do mojego pluginu osobną stronę menu do zarządzania?

Można korzystać z funkcji API dostępnych w menu administracyjnym WordPress. Zwykle to robi się w ramach jednej funkcji. add_menu_page()add_submenu_page() Funkcja służy do rejestracji elementów menu oraz ich odpowiednich funkcji obsługi (zwanych „callback funkcjami”). To działanie wymaga powiązania („hooking”) z odpowiednimi elementami interfejsu użytkownika. admin_menu Na haczu. W funkcji zwrotnej możesz wyświetlić HTML, by zbudować swoją stronę ustawień, oraz obsługiwać wysyłanie formularzy.

Jak powinny interagować pliki rozszerzające (plug-iny) z bazą danych WordPress?

WordPress oferuje globalne obiekty. $wpdbTo potężna klasa abstrakcji bazy danych, służąca do wykonywania własnych zapytań SQL. Jeśli chodzi o bardziej strukturalne przechowywanie danych, zaleca się używanie API dostępnych w WordPress.get_option(), update_option(), add_option()Można użyć struktur typu „klucz-wartość” do przechowywania prostych informacji, albo zintegrować je z API metadanych artykułów.add_post_meta(), get_post_meta()Można użyć bazy danych do przechowywania danych związanych z określonymi artykulami, stronami lub typami artykułów dostosowanymi do potrzeb użytkownika. Najlepiej unikać pisania kodu SQL w formie tekstowej.

Jak mogę zrobić, aby moje dodatkowe funkcje (pluginy) były dostępne w kilku językach?

WordPress wykorzystuje technologię GNU gettext do realizacji funkcji internacionalizacji (i18n). Musisz wykonać następujące kroki: Najpierw w kodzie swojego pluginu wszystkie teksty, które wymagają tłumaczenia, muszą zostać oznaczone specjalnymi znakami. (), esc_html()_e() Założmy, że funkcja obsługiwać będzie pakowanie różnych funkcji tłumaczeniowych. Następnie, w nagłówku pliku rozszerzenia (pluginu) należy użyć tej funkcji. load_plugin_textdomain() Funkcja służy do ładowania plików z tłumaczeniami. Na koniec, użyj narzędzi takich jak Poedit do generowania gotowych tekstów po tłumaczeniu. .pot Pliki szablonów, które umożliwiają tłumaczom tworzenie tekstów w określonym języku. .po.mo Dokumenty.

Jak sprawdzić moje wtyczki, nie narażając przy tym na uszkodzenie witryny internetowej?

Należy mocno zalecać wykonywanie wszystkich prac rozwojowych oraz pierwszych testów w lokalnym środowisku rozwojowym (np. XAMPP, Local by Flywheel) lub na niezależnym, niepublicznym serwerze testowym (Staging Server). Nigdy nie należy rozwijać i testować nowego, nieprzetestowanego w pełni pluginu bezpośrednio na produkcjnym serwerze internetowym. W środowisku lokalnym lub na serwerze testowym możesz swobodnie generować błędy oraz debugować kod, bez obawy o wpływ na użytkowników i dane witryny.