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

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

Przed rozpoczęciem rozwoju wtyczek dla WordPress należy wykonać kilka przygotowawczych kroków:

Przed rozpoczęciem pisania pierwszej linii kodu dobrze przygotowane warunki stanowią podstawę dla sukcesu projektu. To obejmuje nie tylko przygotowanie technicznego środowiska, ale także dokładną analizę wymagań i planowanie projektu.

Najpierw potrzebujesz lokalnego środowiska rozwoju. Zaleca się użyć narzędzi takich jak Local by Flywheel, MAMP, XAMPP lub Docker, aby szybko uruchomić środowisko do pracy z WordPressem, w którym będą dostępne PHP, MySQL oraz serwery Apache/Nginx. Upewnij się, że twoja wersja PHP spełnia aktualne wymagania oficjalnego WordPressa – zwykle potrzebna jest wersja PHP 7.4 lub wyższa.

Z drugiej strony, konieczne jest określenie problemu, który ma rozwiązać twój plugin. Chodzi o dodanie jakiejś specjalnej funkcji do witryny internetowej czy o optymalizację istniejącego procesu? Jasny opis pluginu oraz lista jego funkcji stanowią podstawę dla dalszego rozwoju. Zaleca się używać narzędzi takich jak Trello lub prostych dokumentów do planowania kolejnych wersji pluginu oraz realizacji poszczególnych funkcji.

Polecamy lekturę. Przewodnik po tworzeniu wtyczek do WordPressa: od podstaw do publikacji i udostępnienia w sklepie.

Na koniec potrzebny będzie edytor kodu lub środowisko rozwoju (IDE). Visual Studio Code, PhpStorm oraz Sublime Text to doskonałe wybory, które oferują dobrą obsługę przy rozwoju aplikacji w języku PHP i dla platformy WordPress, wliczając wyróżnianie syntaksy, sugestie kodu oraz funkcje debugowania. Gdy już wszystko jest gotowe, możesz zacząć tworzyć podstawę twojego pluginu – czyli główny plik programu.

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 plugina dla WordPress

Wszystko zaczyna się od trudności, ale stworzenie najprostszego pliku wtyczki dla WordPress jest niezwykle łatwe. W tym rozdziale pokazano ci, jak skonstruować podstawową strukturę wtyczki, jak napisać oświadczenie o bezpieczeństwie oraz jak ją aktywować.

Utworź nowy folder, którego nazwa musi być unikalna i opisywać funkcje tego pluginu w języku angielskim. Na przykład:my-first-pluginW tym folderze należy stworzyć główny plik pluginu, który zwykle ma nazwę…plugin-name.phpTrzeba to nazwać. Ten plik stanowi punkt wejścia do pluginu, a WordPress rozpoznaje plugin na podstawie określonych informacji zawartych w komentarzach na początku tego pliku.

Na początku tego pliku głównego musisz dodać komentarz z informacjami o head pliku wtyczki, zgodny z standardami WordPress. Poniżej jest przykład najprostszego rozwiązania:

<?php
/**
 * Plugin Name: 我的第一个插件
 * Plugin URI:  https://example.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
 */

W tym komentarzu informacja “Nazwa pluginu” jest obowiązkowa, natomiast pozostałe dane są opcjonalne. Jednak zdecydowanie zaleca się uzupełnić wszystkie pola. Po ukończeniu prosimy przesłać folder z pluginem do katalogu instalacji WordPress./wp-content/plugins/Bieżysz po ścieżce do witryny “Dodatki” w panelu administracyjnym WordPress. Tam zobaczysz swoje dodatki i będziesz mógł je aktywować. Na tym etapie nie mają one żadnych funkcji, ale udało ci się stworzyć dodatek, który jest rozpoznawany przez WordPress.

Polecamy lekturę. Rozwój wtyczek do WordPressa to proces, który rozpoczyna się od zera i prowadzi do stworzenia jednego z najpopularniejszych na świecie narzędzi do zarządzania treścią.

Implementowanie prostej funkcji

Dajmy temu pustemu pluginowi pierwszą istotną funkcję: automatyczne dodawanie informacji o prawach autorskich na dno treści artykułu. To pomoże ci zrozumieć, w jaki sposób działają „hooki” w WordPress.

Najpierw musimy stworzyć funkcję, która umożliwi dodawanie tekstów dotyczących praw autorskich. Nazwiemy tę funkcję…myplugin_add_footer_text

function myplugin_add_footer_text($content) {
    // 确保只在网站前端的主文章循环中执行
    if (is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query()) {
        $footer_text = '<p><em>Ten tekst został przygotowany dla ciebie przez moje pierwsze dodatkowe narzędzie (plugin).</em></p>';
        $content .= $footer_text;
    }
    return $content;
}

Następnie musimy “przypiąć” tę funkcję do określonego punktu wykonywania w WordPressie – ten proces nazywany jest “dodawaniem háków” (ang. adding hooks). Tutaj użyjemy…the_content„Filter hook”. W głównym pliku swojego pluginu dodaj następujący kod:

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%
add_filter('the_content', 'myplugin_add_footer_text');

Po zapisaniu pliku odśwież stronę artykułu na swoim witrynie i zobaczysz, że na końcu treści pojawił się tekst o autorskich prawach, który ustaliliśmy. Dzięki temu prostemu przykładowi poznaliśmy już kluczowe elementy rozwoju pluginów: tworzenie funkcji oraz ich następne wykorzystanie.add_actionadd_filter„Hak” umożliwia łączenie funkcji z życiowym cyklem WordPress.

W głąb tematu: Hooki i API w WordPress

Mechanizm hooków stanowi istotę rozwoju pluginów dla WordPress – umożliwia uruchomienie Twojego kodu w określonych momencach lub w określonych miejscach. Zrozumienie i biegłe korzystanie z hooków jest kluczowym elementem przy budowaniu złożonych funkcji.

WordPress hooki są głównie podzielone na dwa typy: akcje (Actions) i filtry (Filters). Hooki typu akcja są aktywowane w momencie wydarzenia wewnętrznego WordPressa, np. publikacji artykułu lub otwarcia panelu administracyjnego; wtedy twoja funkcja może wykonać jakieś działanie. Hooki typu filtr są używane do modyfikacji danych – umożliwiają zmianę ich wartości przed ich użyciem lub zapisaniem, np. zmianę treści artykułu lub nagłówka.

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

Stworzyć funkcję hooka akcji:

function myplugin_log_post_published($ID, $post) {
    // 当文章发布时,在错误日志中记录一条信息(仅用于演示)
    error_log("文章 {$post->post_title} (ID: {$ID}) 已发布。");
}
// 将函数挂载到 `publish_post` 这个动作钩子上
add_action('publish_post', 'myplugin_log_post_published', 10, 2);

Stworz funkcję hooka do filtrowania:

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 myplugin_excerpt_length($length) {
    // 将默认的摘要长度从55个词修改为20个词
    return 20;
}
// 将函数挂载到 `excerpt_length` 这个过滤器钩子上
add_filter('excerpt_length', 'myplugin_excerpt_length');

Gdy używa się…add_actionadd_filterW tym przypadku trzeci i czwarty parametr reprezentują odpowiednio priorytet oraz liczbę parametrów. Poprawne ustawienie tych parametrów umożliwia precyzyjne kontrolowanie kolejności wykonywania kilku funkcji wywoływanych w odpowiedzi na dane wydarzenia (ang. callback functions).

Używanie API w WordPressie

Aby użytkownicy pluginów mogli dostosować jego działanie, konieczne jest stworzenie strony konfiguracji. WordPress oferuje API do ustawiania, które ułatwia ten proces. Zwykle wymagają się trzy główne funkcje:register_settingWykorzystuje się do rejestracji zestawu ustawień.add_settings_sectionZnaczek używany do dodania obszaru ustawień na stronie.add_settings_fieldSłuży do dodawania konkretnych polów w tym obszarze.

Tworzenie funkcji dla strony z listą opcji:

function myplugin_settings_page() {
    add_options_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限
        'myplugin-settings', // 菜单 Slug
        'myplugin_render_settings_page' // 用于输出页面内容的回调函数
    );
}
add_action('admin_menu', 'myplugin_settings_page');

A potem musisz to zrealizować.myplugin_render_settings_pageFunkcja służy do wyświetlenia formularza oraz do jego obsługi (tj. do przetwarzania wprowadzonych danych).settings_fieldsdo_settings_sectionsFunkcja służy do wyświetlania pola formularza, które są automatycznie obsługiwane przez API WordPress.get_optionMożesz łatwo uzyskać wartości ustawionych przez użytkownika w dowolnym miejscu kodu wtyczki.

Dziennik rozwoju i publikacji pluginów

Gdy funkcje twojego pluginu stają się coraz bardziej rozwinięte, a ilość kodu wzrasta, dobrze zorganizowany kod, bezpieczeństwo oraz wsparcie dla różnych języków stają się niezbyt ważne.

Aby zachować jasność kodu, zaleca się rozdzielać kod realizujący różne funkcje na oddzielne pliki. Na przykład: procedury rejestracji hooków oraz kluczowe funkcje można umieścić w pliku głównym, a kod dotyczący ustawień na stronie konfiguracji w innym pliku.admin/Podkatalog – w nim umieścimy kod funkcji front-end.public/Dodawanie podkatalogów oraz ich ładowanie na podstawie określonych warunków to skuteczne rozwiązanie. Wykorzystywanie programowania obiektowego (OOP – Object-Oriented Programming) to również doskonała praktyka przy zarządzaniu złożonymi pluginami, ponieważ umożliwia lepsze zabezpieczenie danych i funkcji.

Bezpieczeństwo to kluczowy element w rozwoju dodatków (plug-inów). Wszelkie dane pochodzące od użytkowników…$_GET$_POST$_COOKIEWszystkie elementy muszą zostać zweryfikowane i zdezinfikowane. WordPress oferuje wiele funkcji, które pomagają w tym procesie.sanitize_text_fieldwp_kses_postintvalItp. Podczas wysyłania jakichkolwiek danych do przeglądarza lub bazy danych konieczne jest również wykonywanie operacji escape (ujęcia specjalnych znaków).esc_htmlesc_attrwp_ksesFunkcje. Do operacji z bazą danych konieczne jest używanie funkcji dostępnych w WordPress.$wpdbKlasy i ichprepareMetody zapobiegania iniekcjom SQL.

Implementacja internacionalizacji wtyczek

Aby twoje dodatkowe funkcje (plugin) były dostępne dla użytkowników z całego świata, internacionalizacja jest koniecznym krokiem. Składa się ona z dwóch głównych etapów:__()_e()Funkcje typu „wait” obejmują wszystkie teksty, które potrzebują zostać przetłumaczone, a także zajmują się poprawnym naładowaniem pola tekstowego.

W nagłówku pliku rozszerzenia już zdefiniowaliśmy domen tekstowy („Text Domain”). Podczas inicjalizacji pliku rozszerzenia (zwykle w głównym pliku programu) konieczne jest załadowanie plików z informacjami językowymi.

function myplugin_load_textdomain() {
    load_plugin_textdomain('my-first-plugin', false, dirname(plugin_basename(__FILE__)) . '/languages/');
}
add_action('init', 'myplugin_load_textdomain');

Później możesz użyć czegoś w rodzaju…__('Hello World', 'my-first-plugin')Można użyć określonej konwencji pisania, by oznaczyć ciągi znaków. Tłumacze mogą korzystać z narzędzi takich jak Poedit, aby przeprowadzić odpowiednie zmiany według wygenerowanych instrukcji..potTworzenie plików szablonów.po.moPrzetłumacz plik i umieść go w pluginie./languages/W katalogu.

Na koniec, po tym jak funkcje dodatku zostaną ustabilizowane, możesz zdecydować się o jego zgłoszeniu do oficjalnego katalogu dodatków WordPress, aby mogło go używać większe число osób. To wymaga skompilowania kodu dodatku w formie przyjaznej do dystrybucji oraz napisania dokładnego opisu jego działania.readme.txtPlików, zgodnie z normami rozwoju stosowanymi w społeczności.

Podsumowanie.

Rozwoj pluginów dla WordPress to proces przekształcania idei w potężne funkcje. Zaczynasz od przygotowania środowiska i tworzenia podstawowych plików pluginu, a potem stopniowo zagłębiasz się w mechanizmy hooków oraz API dostępne w WordPress. Na końcu dotarasz do zaawansowanych tematów, takich jak organizacja kodu, bezpieczeństwo i internacjonalizacja. Kluczowym elementem całego procesu jest zrozumienie architektury WordPress opartej na zdarzeniach, która umożliwia bezproblemowe rozszerzanie funkcji standardowego systemu za pomocą hooków akcji i filtrów. Pamiętaj, że najlepszym sposobem na stanie się skutecznym programistą tworzącym pluginy jest rozpoczęcie od prostego rozwiązania, dalsze iteracje oraz zawsze dbanie o bezpieczeństwo kodu i jakość użytkowniczego doświadczenia.

FAQ – najczęściej zadawane pytania.

Aby rozwijać plagiary do WordPressa, należy opanować które języki programowania?
Aby rozwijać pluginy dla WordPress, konieczne jest opanowanie języka PHP, ponieważ sam core WordPress jest napisany w tym języku. Funkcje frontendowe zwykle wymagają użycia HTML, CSS i JavaScript. W przypadku interakcji z bazą danych przydatne są też podstawowe znajomości SQL.$wpdbKlasa zawiera większość operacji.

Jak debugować moją wtyczkę WordPress?

W fazie rozwoju zaleca się włączyć tryb debugowania w WordPress.wp-config.phpW dokumencie zostanie przedstawionyWP_DEBUGKonstanta ustawiona jest na…trueMożesz też użyć…error_log()Funkcja zapisuje informacje do logu błędów na serwerze. Do bardziej złożonego debugowania można użyć profesjonalnych dodatków, takich jak Xdebug lub Query Monitor, które umożliwiają monitorowanie wykonywania kodu oraz operacji wykonywanych w bazie danych.

Jak moje dodatkowe narzędzie (plugin) może interagować z usługami lub API dostępnymi od innych dostawców?

Dodatki można integrować za pomocą API HTTP WordPress (na przykład…).wp_remote_get()wp_remote_post()Umożliwia bezpieczną i stabilną komunikację z zewnętrznych usług. HTTP API WordPress zawiera w sobie funkcje takie jak obsługa czasu wykonywania operacji (timeout) oraz weryfikacja protokołu SSL, co czyni go bardziej niezawodnym niż bezpośrednie wykorzystanie funkcji curl lub file_get_contents w PHP. Podczas obsługi odpowiedzi konieczne jest sprawdzenie wszystkich błędów i ich odpowiednie wyeliminowanie.

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

Choć lista opcji w WordPressie wystarczy do większości potrzeb dotyczących przechowywania konfiguracji, strukturalne dane mogą lepiej być przechowywane w własnych tabelach. Możesz to zrobić za pomocą hooków aktywacji wtyczek (pluginów).register_activation_hookW procesie rejestracji funkcji wykonywana jest instrukcja SQL służąca do tworzenia tabeli. Jest to konieczne.$wpdb->prefixAby upewnić się, że prefiks tabeli jest poprawny, należy go użyć.dbDeltaFunkcje służą do bezpiecznego tworzenia lub aktualizowania struktury tabeli. Każdy zapyt dotyczący użytkowej tabeli powinien być przeprowadzany za pomocą tych funkcji.$wpdbDziało się to na obiekcie.

Jak zapewnić, że moje rozszerzenie będzie kompatybilne z innymi rozszerzeniami lub tematami?

Najlepsze praktyki zachowania kompatybilności to: używanie API serca WordPress oraz standardowych „hooków”; dodawanie unikalnych prefiksów do nazw funkcji, klas i opcji (na przykład w formie skrótów związanych z dodatkami); pakowanie funkcji w klasy lub przestrzeni nazw, aby uniknąć konfliktów nazw; unikanie bezpośrednich modyfikacji zmiennych globalnych; sprawdzanie, czy dane operacje (np. rejestracja skrótów lub definiowanie własnych typów artykułów) nie wpłyną na globalny stan systemu, zanim je wykonać; a także testowanie aplikacji w jak największym możliwym liczbie różnych środowisk przed jej publikacją.