Pełny przewodnik po tworzeniu wtyczek WordPress: budowanie niestandardowych funkcji od podstaw.

2 minuty czytania
2026-03-14
2026-06-03
2,471
Zarabiam prowizję, gdy robisz zakupy poprzez poniższe linki, bez żadnych dodatkowych kosztów dla Ciebie.

Środowisko do rozwoju pluginów dla WordPressa i podstawowe przygotowania

Przed rozpoczęciem pisania kodu stabilne i izolowane środowisko rozwoju to pierwszy krok do sukcesu. Dzięki temu twoja produkcyjna strona internetowa nie będzie podlegać wpływom testowego kodu, a proces debugowania będzie przebiegać sprawniej.

Ustawienie lokalnego środowiska rozwoju

Rekomenduje się używać lokalnych pakietów programów do obsługi serwerów, takich jak Local by Flywheel, XAMPP lub MAMP. Te narzędzia umożliwiają jednorazową instalację kompletnego środowiska zawierającego PHP, MySQL oraz serwery Apache/Nginx. Upewnij się, że wersja PHP, którą wybierasz, odpowiada wymaganiom twojej wersji WordPress. Zwykle zaleca się używać PHP 7.4 lub wyższych wersji, aby uzyskać lepszą wydajność i większą bezpieczeństwo.

Tworzenie głównego pliku wtyczki

Każdy plugin WordPress musi mieć plik główny, który stanowi punkt wejścia do pluginu. Ten plik musi zostać umieszczony w określonym miejscu w strukturze plików projektu. wp-content/plugins Plik należy umieścić w osobnej folderze znajdującym się w katalogu i nazwać go unikalnie. Na przykład, jeśli chcesz stworzyć plugin o nazwie “Powitania”, możesz utworzyć folder o takiej nazwie i umieścić w nim plik z kodem pluginu. my-first-plugin foldera i w nim utworzyć plik główny. my-first-plugin.php

Polecamy lekturę. Pełny przewodnik po tworzeniu wtyczek WordPress: od zera do stworzenia wtyczki klasy biznesowej.

Na początku tego pliku musi znajdować się specjalna komentarzowa linia zawierająca informacje o pluginie, które są potrzebne do przekazania WordPress. Poniżej jest przykład najprostszego możliwego formatu takiej linii:

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

Podstawowa struktura pluginu oraz mechanizm hooków

Podstawa rozwoju pluginów dla WordPress polega na zrozumieniu i wykorzystaniu jego systemu “hooków” (ang. Hooks). Hooki umożliwiają włączenie Twojego kodu w określone punkty czasowe w procesie działania WordPress, co daje możliwość modyfikacji lub dodawania nowych funkcji, bez konieczności edycji źródłowych plików platformy.

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

Hakówki są głównie podzielone na dwa typy: akcje (Actions) i filtry (Filters). Hakówki typu akcja wykonywają twój kod w momencie wystąpienia określonego wydarzenia, na przykład przy publikacji artykułu lub przy ładowaniu panelu administracyjnego. add_action() Funkcje są używane do montowania (przypisywania danych do odpowiednich struktur). Filtry hooki służą do modyfikacji danych – umożliwiają zmianę ich wartości przed wysłaniem do bazy danych lub do przeglądarza. add_filter() Należy użyć funkcji, aby zamontować dysk.

Na przykład, jeśli chcesz dodać własny tekst do nagłówka strony internetowej, możesz to zrobić za pomocą odpowiednich narzędzi lub kodu. wp_footer Ten aktywny hook:

Funkcja myplugin_add_footer_text() {
    echo '<p style="text-align:center;">Dziękujemy, że korzystasz z tej witryny!</p>';
}
add_action( 'wp_footer', 'myplugin_add_footer_text' );

Stworzenie strony do zarządzania pluginami

Wiele wtyczek wymaga dostępnych na stronie konfiguracji w panelu administracyjnym WordPress. To zwykle jest realizowane poprzez ich montaż („mounting”) w odpowiednich miejscach w kodzie platformy. admin_menu Aby to zrealizować, należy użyć „akcji hooków” (action hooks). Musisz definiować funkcję, w której będzie to wykonywane. add_menu_page()add_options_page() Należy użyć funkcji do rejestracji strony oraz innej funkcji do wyświetlania jej zawartości w formie HTML.

Polecamy lekturę. Od zera: Pełny przewodnik i praktyczne poradzenie dotyczące rozwoju pluginów dla WordPress

function myplugin_add_admin_menu() {
    add_options_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限
        'myplugin-settings', // 菜单别名
        'myplugin_render_settings_page' // 用于显示页面内容的函数
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

function myplugin_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h2>Ustawienia mojej wtyczki.</h2>
        <form method="post" action="/pl/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'myplugin_settings_group' );
            do_settings_sections( 'myplugin-settings' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="pl"/></form>
    </div>
    &lt;?php
}

Rozwijanie funkcji dodatków (plug-inów) oraz przetwarzanie danych

Pełny plugin musi często obsługiwać dane wprowadzone przez użytkownika, zachowywać ustawienia oraz interagować z bazą danych. WordPress oferuje potężne API, które ułatwiają te procedury.

Użyj API do konfiguracji, by zapisać wybrane opcje.

Ręczne obsługiwanie procesów wysyłania formularzy oraz operacji w bazie danych jest zarówno uciążliwe, jak i niebezpieczne. WordPress oferuje API, które umożliwia standardyzowaną i bezpieczną metodę rejestracji, weryfikacji oraz zapisu ustawień. W tym procesie biorą udział trzy kluczowe funkcje:register_setting()add_settings_section()add_settings_field()

Poniższy przykład pokazuje, jak ustawić rejestrację pola tekstowego:

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%
function myplugin_settings_init() {
    register_setting( 'myplugin_settings_group', 'myplugin_greeting_text' );

add_settings_section(
        'myplugin_section',
        '基础设置',
        null,
        'myplugin-settings'
    );

add_settings_field(
        'myplugin_field_greeting',
        '问候语',
        'myplugin_field_greeting_render',
        'myplugin-settings',
        'myplugin_section'
    );
}
add_action( ‘admin_init’, ‘myplugin_settings_init’ );

function myplugin_field_greeting_render() {
    $value = get_option( ‘myplugin_greeting_text’, ‘你好,世界!’ );
    echo ‘<input type=“text” name=“myplugin_greeting_text” value=“’ . esc_attr( $value ) . ‘” />’;
}

Utwórz niestandardową tabelę w bazie danych.

Jeśli potrzebujesz pliku do przechowywania złożonych danych relacyjnych, może być konieczne stworzenie własnej tabeli w bazie danych. To zwykle następuje w momencie aktywacji pliku. Musisz napisać funkcję i przypiąć ją do odpowiedniego „hooka” w procesie rejestracji i aktywacji w WordPress. dbDelta() Funkcja służy do wykonywania zdań SQL odpowiedzialnych za tworzenie lub aktualizację tabeli i umie inteligentnie radzić sobie z zmianami w ich strukturze.

Najpierw zarejestruj haczyk aktywacji w pliku głównego pluginu:

register_activation_hook( __FILE__, ‘myplugin_create_database_table’ );

A potem definiuj funkcję do tworzenia tabeli:

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

function myplugin_create_database_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . ‘myplugin_data’;
    $charset_collate = $wpdb->get_charset_collate();

$sql = “CREATE TABLE $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        name varchar(100) NOT NULL,
        email varchar(100) NOT NULL,
        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY (id)
    ) $charset_collate;”;

require_once( ABSPATH . ‘wp-admin/includes/upgrade.php’ );
    dbDelta( $sql );
}

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

Gotowy plugin musi zostać zabezpieczony, lokalizowany według wymagań różnych języków oraz skompaktowany w standardowy format, aby móc zostać bezpiecznie udostępniony użytkownikom lub złożony do oficjalnego katalogu.

Wdrożenie najlepszych praktyk bezpieczeństwa

Bezpieczeństwo to najważniejszy aspekt przy rozwijaniu wtyczek. Zawsze sprawdź i oczyść dane wprowadzone przez użytkowników (sprawdź ich format oraz usunij wszystkie niebezpieczne elementy). Wykorzystuj funkcje dostępne w WordPress. esc_html()esc_attr()sanitize_text_field() Wykorzystuje się to do wyświetlania lub przetwarzania danych. Podczas wykonywania zapytów do bazy danych… $wpdb->prepare() Metody zapobiegania atakom typu SQL injection. Ponadto, należy używać… current_user_can() Sprawdź uprawnienia użytkowników i upewnij się, że tylko uprawnieni użytkownicy mogą wykonywać operacje wymagające dostępu do poufnych 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.

Implementacja internacionalizacji wtyczek

Aby twoje wtyczki były dostępne dla użytkowników z całego świata, konieczne jest przygotowanie ich do obsługi różnych języków (tzw. internacionalizacja, ang. internationalization lub i18n). To oznacza, że wszystkie teksty przeznaczone dla użytkowników nie powinny być umieszczone bezpośrednio w kodzie, lecz muszą zostać otoczone funkcjami tłumaczeniowymi dostępnymi w WordPress. Najczęściej używaną funkcją do tego celu jest… () Wykorzystywany do wyświetlania tłumaczeń.() Wykorzystuje się do uzyskania przetłumaczonej strony tekstowej, a także… _e() Wykorzystywany do bezpośredniego wyświetlania tłumaczeń.

W twoim kodzie należy to napisać w następujący sposób:

$greeting = __( ‘你好,世界!’, ‘my-first-plugin’ );
echo esc_html( $greeting );

_e( ‘设置已保存。’, ‘my-first-plugin’ );

Uwaga: drugi parametr funkcji tłumaczeniowej, “Text Domain”, musi być zgodny z definicją zawartą w komentarzach na początku pliku z pluginem. Text Domain Wszystko jest dokładnie tak. Następnie możesz użyć narzędzia takiego jak Poedit do generowania wymaganych plików. .pot Pliki szablonowe, przeznaczone do tworzenia przez tłumaczy. .po.mo Tłumacz dokumentów.

Podsumowanie.

Rozwoj pluginów dla WordPress polega na przekształceniu kreatywnych idei w funkcjonalne rozwiązania, a to wymaga głębokiego zrozumienia podstawowej architektury WordPress, szczególnie systemu hooków. Od przygotowania środowiska, pisania kluczowych plików, wykorzystania hooków akcji i filtrów, po obsługę danych za pomocą API konfiguracji i API bazy danych – każdy krok jest realizowany według określonego wzoru. Dopiero po wdrożeniu rygorystycznych zasad bezpieczeństwa oraz pełnej obsługi wielu języków twój plugin może stać się gotowym do publikacji. Po opanowaniu tych podstaw możesz eksplorować bardziej złożone aspekty, takie jak tworzenie własnych typów artykułów, integracja z API typu REST oraz rozwój elementów typu Gutenberg, aby stworzyć jeszcze bardziej wydajne i nowoczesne rozszerzenia dla WordPress.

FAQ – najczęściej zadawane pytania.

Czy do tworzenia wtyczek WordPressowych konieczna jest biegła znajomość PHP?

Tak, PHP jest głównym językiem programowania używanym do tworzenia WordPressa oraz jego dodatków (pluginów). Musisz opanować podstawy gramatyki PHP, funkcje, tablice, a także zasady programowania obiektowego. Równie istotne jest posiadanie podstawowych znajomości HTML, CSS i JavaScript, ponieważ będziesz mieć do czynienia z wyglądem i interakcją strony internetowej na stronie klienta (front end).

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

Zaleca się włączyć tryb debugowania w WordPress. wp-config.php W dokumencie zostanie przedstawiony WP_DEBUG Konstanta ustawiona jest na… trueTo umożliwi wyświetlenie wszystkich błędów, ostrzeżeń i powiadomień PHP na ekranie. Ponadto można to wykorzystać do monitorowania działania aplikacji i identyfikacji potencjalnych problemów. error_log() Funkcja umożliwia zapisy informacji o debugowaniu do logów błędów na serwerze lub wykorzystuje narzędzia do rozwoju w przeglądaczu do debugowania kodu JavaScript na stronie klienta.

Jak uniknąć konfliktów pomiędzy nazwami funkcji w różnych pluginach?

Aby uniknąć konfliktów nazw funkcji, klas lub stałych, zawsze należy używać unikalnych prefiksów. Najlepszą praktyką jest wykorzystanie nazw pluginów lub ich skrótów jako prefiksów. Na przykład, jeśli twój plugin nosi nazwę “Awesome Slider”, możesz użyć prefiksu takiego jak „AS”. as_awesome_slider_ Jako prefiks dla wszystkich funkcji dostosowanych (customized functions). Ten sam zasad musi być stosowany również do nazw klas (class names).

Czy można złożyć płatny plugin do oficjalnego katalogu pluginów WordPress?

Nie jest to możliwe. Oficjalny katalog dodatków do WordPress przyjmuje tylko dodatki, które są zgodne z licencją GPL i są w pełni bezpłatne. Jeśli tworzysz dodatek płatny (zaawansowany), musisz sam distribuować i sprzedawać go na swoim własnym stronie internetowej. Natomiast wiele płatnych dodatków oferuje bezpłatną wersję zawierającą podstawowe funkcje, aby promować i umożliwić testowanie ich zaawansowanej wersji.