Czemu warto uczyć się tworzenia pluginów dla WordPress?
WordPress stał się najpopularniejszym systemem zarządzania treścią na świecie dzięki swojej wyjątkowej rozszerzalności. Kluczowym elementem tej rozszerzalności są pluginy. Rozwijając własne pluginy, możesz dodawać do swojego witryny wszystkie funkcje, które tylko sobie wymarzysz, bez konieczności modyfikacji kodu źródłowego WordPress. To nie tylko gwarantuje bezpieczeństwo podczas aktualizacji systemu, ale także sprawia, że Twoje funkcje są modułowe, łatwe w zarządzaniu i przenoszeniu na inne platformy.
Uczenie się tworzenia pluginów pozwoli ci przekonać się z użytkownika WordPressa na twórcę. Bez względu na to, czy chcesz dostosować aplikację do potrzeb klienta, rozwiązać specjalne wymagania biznesowe czy sprzedać swoje pomysły jako produkt na rynku, posiadanie tej umiejętności otwiera przed tobą nieograniczone możliwości. Co więcej, zrozumienie procesu rozwoju pluginów sprawi, że będziesz lepiej radzić sobie z ich debugowaniem i dalszym rozwojem podczas używania innych pluginów.
Standardowy plugin dla WordPress składa się strukturalnie z folderu, w którym znajduje się główny plik PHP. Ten plik wyraża swoją obecność w systemie WordPress za pomocą specjalnych komentarzy umieszczonej na początku. Wszelka logika biznesowa – od dodawania nowych widgetów, poprzez tworzenie własnych typów artykułów, aż po obsługę danych z formularzy – jest realizowana poprzez różne “hooki” dostępne w WordPress.
Polecamy lekturę. Rozwój pluginów dla WordPress – od początków do mistrzostwa: pokazujemy ci, jak stworzyć własną, unikalną funkcję.。
Stworzenie twojego pierwszego projektu w postaci dodatku (pluginu)
Przed rozpoczęciem rozwoju potrzebny jest lokalny środowisko rozwojowe. Rekomendujemy użyć narzędzi takich jak XAMPP, MAMP, Local by Flywheel lub Docker, aby uruchomić lokalny serwer z obsługą PHP, MySQL oraz Apache/Nginx. Rozwoj w środowisku lokalnym umożliwia uniknięcie wpływu na witrynę internetową działającą w środowisku online.
Struktura podstawowych plików potrzebnych do tworzenia pluginu
Najprostszzy plugin może składać się z jednego tylko pliku. W katalogu zainstalowanego WordPressa wejdź do… wp-content/plugins folder: Tworzymy nowy folder, na przykład… my-first-pluginNastępnie w tym folderze utwórz główny plik PHP; nazwa pliku zwykle jest identyczna z nazwą foldera. my-first-plugin.php。
Napisanie metadanych na początku pliku zawierającego plugin
W głównym pliku pluginu blok komentarzy umieszczone na początku pliku ma kluczowe znaczenie. Informuje WordPress o nazwie pluginu, opisie, wersji, autorze itp. Standardowy nagłówek pliku wygląda następująco:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于学习 WordPress 插件开发的自定义插件。
* Version: 1.0.0
* Author: 你的名字
* License: GPL v2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: my-first-plugin
* Domain Path: /languages
*/ Po zapisaniu pliku loguj się do panelu administracyjnego WordPress, wejdź na stronę “Dodatki” (Plugins) i powinno pojawić się tam “Moje pierwsze dodatko” w liście dostępnych pluginów – możesz je aktywować. W ten sposób został stworzony “pusty”, ale funkcjonalny plugin. Na razie nie ma on żadnych funkcji, ale jego struktura jest poprawna.
Odkryj kluczowe mechanizmy WordPressa: hooki i filtry
Podstawa rozwoju pluginów dla WordPress polega na zrozumieniu i wykorzystaniu jego systemu “hooków”. Hooki są podzielone na dwa typy: hooki akcji (action hooks) i hooki filtrów (filter hooks). To mechanizmy, które umożliwiają wprowadzanie własnego kodu lub modyfikację danych w określonych momencach działania systemu WordPress.
Polecamy lekturę. Przewodnik po rozwoju pluginów dla WordPressa: jak stworzyć swoje pierwsze rozszerzenie funkcjonalne od zera。
Zrozumienie sposobu działania „action hooks” (hooków akcyjnych)
Aktywnie działające „hooki” (ang. action hooks) umożliwiają uruchomienie Twoich funkcji w określonych momencach procesu wykonywania w WordPress. Na przykład, po ukończeniu ładowania strony lub po opublikowaniu artykułu. add_action() Funkcja umożliwia przypisanie Twojej własnej funkcji do jakiegoś „haka” (hooka). Podstawowa gramatika to:add_action( ‘hook_name’, ‘your_function_name’ );。
Zrealizujmy taką funkcję: na dole strony frontendu witryny będzie wyświetlana dowolna, ustawiona informacja. Do tego użyjemy… wp_footer Ten aktywny hook.
function my_custom_footer_message() {
echo '<p style="text-align: center; color: #666;">Dziękujemy, że odwiedziłeś naszą stronę! To informacje umieszczone w nagłówku strony, dodane za pomocą specjalnego pluginu.</p>';
}
add_action( 'wp_footer’, 'my_custom_footer_message’ ); Dodaj ten kod do głównego pliku swojego pluginu. my-first-plugin.php Zapewnij się, że tekst został dobrze wprowadzony, po czym zapisz go i odśwież stronę witryny. Wtedy powinien pojawić się ten tekst w nagłówku strony (na dole strony).
Użyj filtrów, aby zmienić domyślony tekst.
Hooki filtrów służą do modyfikacji danych generowanych przez WordPress w trakcie procesu obsługi żądań. W odróżnieniu od hooków akcji, funkcje filtrów muszą zwrócić jakąś wartość. add_filter() Funkcja służy do montowania filtrów. Na przykład, do zmiany standardowego tekstu nagłówka artykułu:
function modify_post_title( $title ) {
if ( is_single() ) {
return '【精选】’ . $title;
}
return $title;
}
add_filter( ‘the_title’, 'modify_post_title’ ); Ta funkcja dodaje prefiks “【Wybrane】” przed nagłówkiem artykułu na jednej stronie, natomiast nagłówki na innych stronach (np. na głównej stronie, na stronie z listą artykułów) pozostają bez zmian. Za pomocą połączenia akcji i filtrów można kontrolować niemal każdy aspekt działania WordPress.
Stworzenie przydatnej strony zarządzania w tle (backend management page).
Aby użytkownicy pluginów mogli konfigurować różne opcje, zwykle konieczne jest stworzenie dla nich strony administracyjnej. To wymaga wykorzystania API menu administracyjnego w WordPress.
Polecamy lekturę. Rozwój pluginów dla WordPress: Pełny przewodnik od poznania podstaw do osiągnięcia mistrzostwa w tworzeniu modułów z dużą możliwością personalizacji。
Dodaj nowy element menu zarządzania.
Użyj add_menu_page() 或 add_options_page() Funkcje takie jak “add_page” umożliwiają dodawanie nowych stron do lewego menu w panelu administracyjnym WordPress. Podejmiemy przykład dodawania strony pod menu „Ustawienia”.
Najpierw należy stworzyć funkcję, która będzie generować zawartość HTML dla strony zarządzania.
function my_plugin_settings_page_html() {
// 检查用户权限
if ( ! current_user_can( ‘manage_options’ ) ) {
return;
}
?>
<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( ‘my_plugin_settings’ );
do_settings_sections( ‘my_plugin_settings’ );
submit_button( ‘保存设置’ );
?>
<input type="hidden" name="trp-form-language" value="pl"/></form>
</div>
<?php
} Ustawienia rejestracji, bloki i pola
WordPress oferuje… register_setting(), add_settings_section() 和 add_settings_field() Ten zestaw API umożliwia standardowe zarządzanie ustawieniami. Automatycznie obsługuje procedury weryfikacji bezpieczeństwa (np. generowanie numerów losowych – Nonces) oraz zapisy i odczytywanie opcji.
Następnie potrzebujemy funkcji, która będzie służyć do inicjalizacji tych ustawień. Ta funkcja powinna zostać przyłączona („montowana”) do odpowiedniego elementu systemu. admin_init Na haczu.
function my_plugin_settings_init() {
// 注册一个新的设置选项组
register_setting( ‘my_plugin_settings’, ‘my_plugin_options’ );
// 在页面中添加一个新的区块
add_settings_section(
‘my_plugin_section_1’,
‘基础设置’,
null, // 回调函数,用于输出区块描述,可为空
‘my_plugin_settings’
);
// 在区块内添加一个字段
add_settings_field(
‘my_plugin_field_text’,
‘欢迎语’,
‘my_plugin_field_text_cb’,
‘my_plugin_settings’,
‘my_plugin_section_1’,
[
‘label_for’ => ‘my_plugin_field_text’,
‘class’ => ‘my_plugin_row’,
]
);
}
add_action( ‘admin_init’, ‘my_plugin_settings_init’ );
// 字段的回调函数,用于输出字段的 HTML
function my_plugin_field_text_cb( $args ) {
$options = get_option( ‘my_plugin_options’ );
?>
<input type="text" id="<?php echo esc_attr( $args[‘label_for’] ); ?>"
name="my_plugin_options[<?php echo esc_attr( $args[‘label_for’] ); ?>]"
value="<?php echo esc_attr( $options[ $args[‘label_for’] ] ?? ‘’ ); ?>">
<p class="“description”">Ten tekst będzie wyświetlony na główniej stronie witryny internetowej.</p>
<?php
} Dodać link do strony do menu
Na koniec, użyj… add_options_page() Dodaj stronę, którą stworzyliśmy, do menu “Ustawienia”.
function my_plugin_add_settings_page() {
add_options_page(
‘我的插件设置’, // 页面标题
‘我的插件’, // 菜单标题
‘manage_options’, // 所需能力
‘my-plugin-settings’, // 菜单别名
‘my_plugin_settings_page_html’ // 渲染页面的回调函数
);
}
add_action( ‘admin_menu’, ‘my_plugin_add_settings_page’ ); Teraz, po aktywacji wtyczki, możesz znaleźć opcję “Moje wtyczki” w menu “Ustawienia” w panelu administracyjnym WordPress. Kliknij na nią, a otworzy się strona ustawień zawierająca pole tekstowe, w którym możesz wpisać i zapisać powitanie. Później możesz… get_option( ‘my_plugin_options’ ) Otrzymaj tę wartość na frontendzie i użyj jej.
Rozwój funkcjonalności interfejsu użytkownika wtyczki oraz uwzględnienie aspektów bezpieczeństwa
Podczas implementacji funkcji na stronie użytkownika w pluginie bezpieczeństwo jest najważniejszym aspektem do uwzględnienia. Nigdy nie możesz ufać danym wprowadzonym przez użytkownika – należy je sprawdzić, oczyścić i uwzględnić specjalne zasady bezpieczeństwa (np. escape).
Zastanowimy się, jak użyć “witaj słowa” zapisanego w ustawieniach backendu i wyświetlić je w górnej części witryny internetowej. Najpierw musimy uzyskać tę informację z bazy danych, a potem bezpiecznie ją wyświetlić.
function display_frontend_greeting() {
// 1. 获取数据
$options = get_option( ‘my_plugin_options’ );
$greeting = $options[‘my_plugin_field_text’] ?? ‘’;
// 2. 如果内容为空,则不输出任何东西
if ( empty( $greeting ) ) {
return;
}
// 3. 在输出前进行清理和转义
$safe_greeting = esc_html( $greeting );
// 4. 输出到前端(这里假设只在首页显示)
if ( is_front_page() ) {
echo ‘<div class="“my-plugin-greeting”"><p>’. $safe_greeting . ‘</p></div>’;
}
}
add_action( ‘wp_body_open’, ‘display_frontend_greeting’ ); W tym miejscu użyliśmy… esc_html() Funkcja służy do escapeowania znaków HTML w celu zapobiegania atakom typu XSS (Cross-Site Scripting). Ponadto sprawdzamy, czy dane są puste, a także używamy warunkowych tagów. is_front_page() Aby kontrolować lokalizację wyświetlania wyników, należy zmontować („mount”) funkcję w odpowiednim miejscu. wp_body_open Haki, które zapewniają, że treść wyświetla się natychmiast po rozpoczęciu etykiety na stronie.
Ponadto w ramach rozwoju dodatków (pluginów) internacionalizacja jest także istotną praktyką. Poprzez jej stosowanie… __() 和 _e() Można użyć funkcji tłumaczeniowych oraz poprawnie ustawić domenę tekstową (Text Domain) wtyczki, aby twoja wtyczka była tłumaczona na dowolny język. W wcześniejszych metadanych na początku pliku z wtyczką już to zdefiniowaliśmy. Text Domain: my-first-pluginW kodzie należy to używać w następujący sposób:
echo esc_html__( ‘Hello, World!’, ‘my-first-plugin’ ); Podsumowanie.
Dzięki praktyce przedstawionej w tym tekście udało nam się zrealizować cały, choć prosty proces rozwoju wtyczki dla WordPress. Zaczęliśmy od tworzenia podstawowej struktury plików i metadanych wtyczki, a potem przenieśliśmy się do zagadnień związanych z core’em WordPress – systemem hooków, wykorzystując akcje (actions) i filtry (filters) do kontrolowania toku wykonywania programu oraz modyfikacji danych. Następnie stworzyliśmy stronę administracyjną w backendzie zawierającą pola dostosowane do potrzeb użytkowników, aby mogli konfigurować opcje wtyczki, a na koniec te opcje bezpiecznie wyświetlić na stronie frontendu witryny.
Ten proces obejmuje kilka kluczowych aspektów rozwoju pluginów: organizację plików, stosowanie „hooków”, tworzenie interfejsów w tle, zarządzanie opcjami oraz bezpieczne obsługiwanie danych na stronie frontowej. Pamiętaj, że dobry plugin nie tylko musi mieć potężne funkcje, ale także musi być bezpieczny, wydajny i łatwy w utrzymaniu. Następnie możesz spróbować dodać do pluginu dodatkowe funkcje, np. możliwość personalizowania typów artykułów, dostęp do krótkich kodów, dodatkowe narzędzia lub punkty dostępu typu REST API, aby dalej pogłębiać swoje zrozumienie rozwoju pluginów dla WordPress.
FAQ – najczęściej zadawane pytania.
Czy może plik rozszerzenia (plugin) zawierać tylko jeden plik w formacie PHP?
Tak, najprostszzy plugin dla WordPressa może składać się z jednego tylko pliku PHP, pod warunkiem, że ten plik zawiera poprawne komentarze dotyczące struktury pluginu. Jednak w przypadku pluginów złożonych zaleca się organizację kodu w kilku plikach – funkcje obsługiujące interfejs frontend, funkcje obsługiujące interfejs backend oraz funkcje wspólne powinny być umieszczone w osobnych plikach. To poprawia czytelność i łatwość konserwacji kodu.
Jak debugować własny stworzony plugin?
Zaleca się włączyć tryb debugowania w WordPress. To znajduje się w katalogu głównym witryny (root directory). wp-config.php W dokumencie zostanie przedstawiony WP_DEBUG Konstanta ustawiona jest na… trueDzięki temu wszystkie błędy, ostrzeżenia i powiadomienia PHP będą wyświetlone. Można to również łączyć z innymi metodami monitoringu i raportowania. error_log() Funkcja umożliwia zapisy informacji o debugowaniu do logów błędów na serwerze lub wykorzystanie konsoli w narzędziach do rozwoju aplikacji w przeglądarcu do debugowania kodu JavaScript.
Podczas tworzenia wtyczek (pluginów) należy przestrzegać następujących zasad bezpieczeństwa:
Podstawowym zasadą jest: nigdy nie dowierzać żadnemu wprowadzonymu przez użytkownika tekstu lub informacji. Wszystko, co pochodzi od użytkowników, należy traktować z ostrożnością i sprawdzać dokładnie. $_GET、$_POST、$_COOKIE Pobrane dane należy sprawdzić i oczyścić. Podczas wyświetlania danych w formacie HTML należy użyć odpowiednich metod, aby zapewnić ich poprawność i bezpieczeństwo. esc_html()、esc_attr()、esc_url() 等函数进行转义。在构造数据库查询时,务必使用 $wpdb->prepare() Metody zapobiegania atakom typu SQL injection. Ponadto należy sprawdzić uprawnienia aktualnego użytkownika (np. current_user_can()To również niezbędny krok.
Jak złożyć moją dodatkową funkcję (plugin) do oficjalnego katalogu dodatków WordPress?
Najpierw upewnij się, że twoje wtyczki w pełni spełniają standardy kodowania WordPress oraz wymogi licencji GPL. Musisz odwiedzić stronę WordPress.org, utworzyć konto, a potem na stronie dla zgłoszeń wtyczek wysłać kompresowany plik z twoimi plikami. Zespół WordPress przeprowadzi manualną kontrolę, sprawdzając jakość kodu, bezpieczeństwo, dokumentację oraz zgodność z wymogami. Po pozytywnym wyniku twoja wtyczka zostanie dodana do oficjalnego katalogu, otrzyma wsparcie w formie automatycznych aktualizacji i będzie dostępna do wyszukiwania i instalacji przez użytkowników na całym świecie.
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.
- Przewodnik po tworzeniu pluginów dla WordPress: jak stworzyć swój pierwszy własny plugin od zera
- Jak stać się deweloperem pluginów dla WordPressa: pełny przewodnik od zera do jednego
- Pełny przewodnik po rozwoju tematów dla WordPressa: praktyczny kurs od zera do mistrzostwa
- Pełny przewodnik po tworzeniu tematów dla WordPress: budowanie profesjonalnych szablonów stron internetowych od zera
- Pełny przewodnik po rozwoju pluginów dla WordPressa: od poznania podstaw do osiągnięcia biegłości w tworzeniu profesjonalnych rozszerzeń