Opanowanie rozwoju wtyczek dla WordPress jest koniecznym krokiem dla każdego programisty, który chce rozszerzyć funkcjonalność tego systemu. Poprzez tworzenie własnych wtyczek możesz dodać do swojego witryny unikalne elementy i procesy biznesowe, kontrolując w pełni szczegóły ich implementacji, bez potrzeby korzystania z gotowych tematów lub kodu innych autorów. Ten przewodnik pokona wszystkie etapy nauki, od zasad po najlepsze praktyki, a na koniec umożliwi zapoznanie się z realizacją tego procesu na przykładzie praktycznego projektu.
Podstawy i struktura pluginów w WordPressie
WordPress plugin to w istocie jeden lub kilka plików w formacie PHP, które są umieszczone w określonym miejscu w strukturze witryny./wp-content/plugins/W katalogu pliki są zorganizowane według określonej struktury, aby WordPress mógł je rozpoznać i załadować. Zrozumienie tych zasad jest pierwszym krokiem w budowaniu stabilnych dodatków (pluginów) do systemu WordPress.
Podstawowa struktura plików w pluginie
Początkowy punkt pliku rozszerzenia to zwykle plik PHP o tym samym nazwisku co rozszerzenie. Na przykład, dla rozszerzenia o nazwie “My First Plugin” plik główny może mieć nazwę „my_first_plugin.php”.my-first-plugin.phpNa początku tego pliku musi znajdować się standardowy blok komentarzy zawierający informacje o nagłówku pluginu. To kluczowe dla WordPress, aby móc rozpoznać metadane pluginu (takie jak nazwa, opis, wersja, autor).
Polecamy lekturę. Postępowy przewodnik po rozwoju pluginów dla WordPress: od zera do stworzenia profesjonalnych rozszerzeń。
Poniżej znajduje się przykład najprostszego pliku głównego dla wtyczki:
<?php
/**
* Plugin Name: My First Plugin
* Plugin URI: https://yourwebsite.com/my-first-plugin
* Description: 这是一个简单的自定义插件,用于演示基础结构。
* Version: 1.0.0
* Author: Your Name
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/
// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
exit;
} Ten blok kodu definiuje informacje, które będą wyświetlone w liście pluginów w panelu administracyjnym WordPress.Text DomainZastosowuje się do lokalizacji aplikacji (ang. internationalization, lub I18N).if ( ! defined( 'ABSPATH' ) )To zabezpieczenie zapobiegające temu, by użytkownicy mogli bezpośrednio uzyskać dostęp do tego bezpiecznego pliku poprzez adres URL.
Zrozumienie obszaru działania i życia cyklu pluginów
Gdy aktywujesz plugin, jego główny plik jest ładowany w wcześniejszym etapie procesu inicjalizacji WordPress. To oznacza, że masz dostęp do coreowych funkcji i klas WordPress w całym obszarze działania aplikacji. Kod pluginu jest wykonywany z każdym żądaniem strony, dlatego musisz uważać na wydajność i unikać operacji, które zajmują dużo czasu podczas każdej transakcji.
Dobrą praktyką jest pakowanie kodu realizującego określone funkcje w klasy lub funkcje, a następnie uruchomienie ich w odpowiednim momencie za pomocą systemu hooków w WordPress, zamiast wykonywania ich bezpośrednio w globalnym obszarze dostępu pliku. Dzięki temu kod jest wykonywany wyłącznie w momencie potrzebnym, co poprawia efektywność i zwiększa kontrolę nad jego działaniem.
Podstawowe zasady rozwoju oprogramowania: haczyki (hooks) i filtry (filters)
Podstawa filozofii rozwoju pluginów dla WordPress jest “zawodówki” (ang. hooks). Mechanizm zawodówek umożliwia tworzeniu pluginów, które mogą włączyć się do standardowego procesu działania WordPress w określonych momencach, aby modyfikować lub dodawać nowe funkcje, bez konieczności edycji źródłowych plików platformy. Zawodówki dzielą się na dwa głównego typy: akcje (Actions) i filtry (Filters).
Polecamy lekturę. Jak optymalizować wydajność WordPress: kompletny przewodnik od podstaw do zaawansowanych technik。
Używanie aktywnych haczków (action hooks)
Aktywnie działające „haki” (ang. action hooks) umożliwiają wstawienie dodatkowego kodu w określonym momencie wykonywania WordPressa – na przykład w momencie opublikowania artykułu lub przy inicjalizacji menu w panelu administracyjnym. Aby je użyć, konieczne jest skorzystanie z odpowiednich funkcji dostępnych w WordPressie.add_action()Funkcja.
Jeśli chcesz wysłać e-mail administratorowi w momencie publikacji artykułu, możesz napisać coś takiego:
function myplugin_on_publish_post( $post_id ) {
$post = get_post( $post_id );
$admin_email = get_option( 'admin_email' );
wp_mail( $admin_email, '新文章已发布', '文章“' . $post->post_title . '”刚刚发布。' );
}
add_action( 'publish_post', 'myplugin_on_publish_post' ); W tym przykładzie…publish_postTo jest “hook” akcji – gdy stan artykułu zmienia się na „opublikowany”, WordPress uruchomi ten hook i wykona kod, który umieściliśmy w nim.myplugin_on_publish_postFunkcja.
Zastosowanie hooków filtrów
Hooki filtrów służą do modyfikacji danych. Przed tym, jak dane zostaną użyte (na przykład zapisane w bazie danych lub wyświetlone na stronie), WordPress przekazuje je przez odpowiednie filtry. Twój plugin może przyjąć te dane, wykonać na nich zmiany i następnie je ponownie wysłać. Do tego potrzebny jest odpowiedni kod.add_filter()Funkcja.
Klasycznym przykładem jest modyfikacja treści artykułu na jego końcu poprzez automatyczne dodawanie informacji o prawach autorskich.
function myplugin_add_copyright_to_content( $content ) {
if ( is_single() ) {
$copyright_text = '<p><small>© 2026 Wszelkie prawa zastrzeżone.</small></p>';
$content .= $copyright_text;
}
return $content;
}
add_filter( 'the_content', 'myplugin_add_copyright_to_content' ); Tutaj,the_contentTo hook filtru, który przekazuje treść artykułu.$contentNasza funkcja przyjmuje dane wejściowe, dodaje do nich określony tekst i po chwili powraca zmienione dane wejściowe.
Polecamy lekturę. Od zera: Podstawa architektury przy tworzeniu tematów dla WordPress。
Opcje dodatków (plug-inów) i magazynowanie danych
Większość wtyczek wymaga przechowywania ustawień lub danych użytkowników. WordPress oferuje kilka sposobów na to: API do opcji służy do przechowywania prostych par klucza-wartości, API do ustawień umożliwia tworzenie standardowych stron opcji w administracji, a także tabeli w bazie danych do przechowywania złożonych danych zależnych od siebie.
Używanie opcji i ustawień API
Dla konfiguracji wtyczek najczęściej używana jest API z opcjami. Możesz ją wykorzystać do dostosowania zachowania wtyczki według potrzeb.add_option()、get_option()和update_option()Do zarządzania danymi.
Jednak bardziej profesjonalnym sposobem jest wykorzystanie API, które zajmuje się za ciebie wszystkimi trudnymi procedurami, takimi jak tworzenie formularzy na stronie z opcjami, sprawdzanie bezpieczeństwa (np. generowanie tokenów typu Nonce) oraz zapisywanie danych. Musisz to wykorzystać w swoim kodzie.register_setting()、add_settings_section()和add_settings_field()Można użyć takich funkcji, jak `wp_set_options`, `wp_get_options`, `wp_add_options` itd., aby stworzyć stronę ustawień w stylu backendu WordPress.
Utwórz niestandardową tabelę w bazie danych.
Gdy konieczne jest przechowywanie dużych ilości strukturalizowanych danych (np. zamówień, rekordów złożonych formularzy), konieczne jest stworzenie własnych tabel w bazie danych. To zwykle jest wykonywane w momencie aktywacji dodatku (pluginu).dbDelta()Funkcja służy do bezpiecznego tworzenia lub aktualizowania struktury tabeli.
Aby tego dokonać, musisz zainstalować kod służący do tworzenia tabeli.register_activation_hookNa tym specjalnym haczu znajduje się akcja typu „hook”. Ta akcja zostanie wykonana tylko wtedy, gdy twoje wtyczka (plugin) jest aktywna.
register_activation_hook( __FILE__, 'myplugin_create_custom_table' );
function myplugin_create_custom_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 );
} Praktyczny projekt: Stworzenie prostego dodatku do listy zadań do wykonania
Skupmy się teraz na tym, jak połączyć wszystkie te informacje, aby stworzyć prostą wtyczkę do listy rzeczy do zrobienia w panelu administracyjnym. Wtyczka ta doda do panelu administracyjnego WordPressa element menu, który umożliwi administratorom dodawanie, przeglądanie i oznaczanie jako ukończone zadań na liście rzeczy do zrobienia.
Tworzenie głównego pliku pluginu i menu
Najpierw należy stworzyć główny plik pluginu.wp-todo-list.phpDodaj informacje o nagłówku pliku z rozszerzeniem. Następnie, użyj…add_action( ‘admin_menu’, … )„Hook” służy do dodania strony menu zarządzania.
// 在插件主文件中
function mytodo_add_admin_menu() {
add_menu_page(
'待办事项', // 页面标题
'待办事项', // 菜单标题
'manage_options', // 权限
'wp-todo-list', // 菜单slug
'mytodo_display_page', // 显示页面的回调函数
'dashicons-editor-ul', // 图标
6 // 位置
);
}
add_action( 'admin_menu', 'mytodo_add_admin_menu' );
// 显示页面的回调函数
function mytodo_display_page() {
// 页面HTML和逻辑将在这里处理
echo '<div class="wrap"><h1>Moje zadania do zrealizowania</h1></div>';
} Implementowanie funkcji dodawania i wyświetlania danych
potrzebujemy formularza do dodawania nowych zadań do realizacji oraz listy, która będzie je prezentować. Aby ułatwić sobie życie, użyjemy API z opcjami do przechowywania arrayu zadań do realizacji.mytodo_display_page()W funkcji obsługujemy wysyłanie formularzy oraz zapisywamy dane do odpowiednich opcji.
function mytodo_display_page() {
echo '<div class="wrap"><h1>Moje zadania do zrealizowania</h1>';
// 处理表单提交
if ( isset( $_POST['new_todo'] ) && ! empty( $_POST['new_todo'] ) ) {
$todos = get_option( 'mytodo_list', array() );
$new_todo = sanitize_text_field( $_POST['new_todo'] );
$todos[] = array( 'task' => $new_todo, 'done' => false );
update_option( 'mytodo_list', $todos );
}
// 显示表单
echo '<form method="POST" action="">'echo '<input type="text" name="new_todo" placeholder="Wprowadź nowe zadanie….">'echo '<input type="submit" value="Dodać" class="button button-primary">'echo '<input type="hidden" name="trp-form-language" value="pl"/></form>';
// 显示列表
$todos = get_option( 'mytodo_list', array() );
if ( ! empty( $todos ) ) {
echo '<ul style="margin-top: 20px;">';
foreach ( $todos as $index => $todo_item ) {
$status = $todo_item['done'] ? '(已完成)' : '(待办)';
echo '<li>'`.esc_html($todo_item['task'])`. ` ` . $status`. ` `'</li>';
}
echo '</ul>';
}
echo '</div>';
} Ten prosty przykład pokazuje kluczowe etapy rozwoju pluginów: tworzenie interfejsu do zarządzania, obsługi wprowadzanych przez użytkownika danych, bezpiecznego przechowywania i wywoływania tych danych. W rzeczywistym procesie rozwoju konieczne jest również dodanie funkcji do dodawania i usuwania zadań, realizacji operacji AJAX, a także ulepszenia zabezpieczeń (np. wykorzystania tokenów typu Nonce) oraz sprawdzania upoważnień użytkowników.
Podsumowanie.
Rozwoj pluginów dla WordPress polega na przekształceniu kreatywnych idei w konkretne funkcje, a kluczowym elementem w tym procesie jest zrozumienie i skuteczne wykorzystanie systemu hooków. Počynaj od jasno określonej struktury plików pluginu, używaj hooków akcji i filtrów do precyzywnego wpływania na pracę WordPress, zarządzaj danymi za pomocą API opcji lub własnych tabel, a w końcu stwórz plugin o pełnych funkcjach i przyjaznym interfejsie dla użytkowników. Dzięki stosowaniu najlepszych praktyk bezpieczeństwa i wydajności twój plugin będzie świadomie i skutecznie służyć wielu witrynach internetowych opartych na platformie WordPress.
FAQ – najczęściej zadawane pytania.
Jaka wiedza jest potrzebna, by tworzyć wtyczki do WordPressa?
Konieczne jest posiadanie solidnych umiejętności programowania w PHP, a znajomość HTML, CSS i JavaScript (zwłaszcza jQuery) będzie bardzo przydatna. Znajomość zasad programowania obiektowego (OOP) pomoże w stworzeniu bardziej zorganizowanego i łatwiej utrzymywanego kodu dla Twoich pluginów. Oczywiście, istotne jest też zrozumienie podstawowych zasad działania platformy WordPress.
Jak zapewnić, że plugin, który rozwijam, jest bezpieczny?
Bezpieczeństwo to najważniejszy aspekt przy rozwijaniu wtyczek. Zawsze sprawdź i oczyszczaj dane wprowadzane przez użytkowników.sanitize_text_field()、esc_html()、wp_kses()Można korzystać z funkcji dostępnych w WordPress. Podczas obsługi form należy koniecznie używać mechanizmu nonce („number used once”) w WordPress, aby zapobiec atakom typu CSRF. Dla operacji na bazie danych zaleca się stosowanie odpowiednich zabezpieczeń.$wpdbKlasy oraz ich instrukcje przygotowawcze (Class definitions and their preparation instructions)prepare()Metody zapobiegające iniekcjom SQL. Nie zapomnij o ich użyciu.current_user_can()Przeprowadź sprawdzenie umiejętności.
Jak zrealizować internacionalizację (i18n) w pluginie?
WordPress wykorzystuje technologię GNU gettext do realizacji funkcji internationalizacji. W polach tekstowych swojego pluginu (definiowanych w jego nagłówku) należy umieścić wszystkie teksty, które wymagają tłumaczenia.()或_e()Zawijanie funkcji. Na przykład:echo ( ‘Hello World’, ‘my-plugin-textdomain’ )Następnie użyj narzędzia takiego jak Poedit do generowania wymaganych plików..potPliki szablonów, w których tłumacze mogą tworzyć odpowiednie treści..po和.moPliki językowe. Umieść pliki językowe w folderze z pluginem./languages/Może być w katalogu.
Jak powinienem debugować i testować swój plugin?
Najpierw upewnij się, że masz wszystko niezbędne w swoim…wp-config.phpW pliku jest włączone (aktywne) określone funkcje lub opcje.WP_DEBUG和WP_DEBUG_LOGTo umożliwi zapisanie informacji o błędzie./wp-content/debug.logW pliku. Można go użyć.error_log()Funkcja wyświetla informacje diagnostyczne na podstawie ustawień użytkownika. W przypadku kodu PHP można używać profesjonalnych narzędzi, takich jak Xdebug. Ponadto, przed publikacją, konieczne jest sprawdzenie zgodności z różnymi wersjami PHP (np. 7.4, 8.0, 8.1) oraz wersjami WordPress, aby upewnić się, że twój plugin nie będzie powodować konfliktów z popularnymi tematami lub innymi pluginami.
Następny krok, co dalej?
Dalsze lektury i praktyczna wiedza.
Poniższe treści są powiązane z tematem tego artykułu i warto je przeczytać. Zwykle lepiej zacząć od artykułu, który najbardziej odpowiada aktualnemu problemowi, a potem stopniowo przechodzić do tematów pokrewnych.
- WooCommerce: Kompletny przewodnik – jak budować sklep internetowy na WordPress od zera
- Przewodnik po podstawach WordPressa: jak stworzyć swoją pierwszą profesjonalną stronę internetową od zera
- Czemu warto używać platformy WooCommerce do budowy sklepu online?
- Czemu warto wybrać WordPress – dziesięć najważniejszych zalet tego otwartego systemu zarządzania treścią (CMS)?
- Opanujć WooCommerce w dziesięć minut: Przewodnik po budowaniu witryny e-handlowej od počatków do osiągnięcia zysków