Przygotowanie i ustawienie środowiska
Przed rozpoczęciem pisania kodu potrzebny jest odpowiedni środowisko rozwoju, które składa się z lokalnej instalacji WordPress oraz edytora kodu. Zaleca się użyć narzędzi takich jak XAMPP, Local by Flywheel lub Docker do uruchomienia lokalnego serwera. Upewnij się, że twoja wersja WordPress jest najnowsza, aby móc korzystać z najnowszych API i funkcji bezpieczeństwa.
Musisz znać podstawową strukturę pluginów WordPress. Najmniejszy plugin wymaga przynajmniej jednego pliku głównego, który jest plikiem PHP z określonymi komentarzami w nagłówku. Nazwa tego pliku zwykle to… your-plugin-name.phpInformuje WordPress, że jest to plugin, a także podaje takie dane jak nazwa, opis, wersja oraz autor.
W edytorze kodu stworz nową folderę dla swojego projektu pluginu, na przykład: my-first-pluginW tym folderze utwórz główny plik PHP.
Polecamy lekturę. Zaczynamy od zera: kompletny przewodnik po tworzeniu wtyczek do WordPressa wraz z praktycznymi poradami.。
Stworz swoj pierwszy plik z rozszerzeniem (plugin).
Teraz zacznijmy tworzyć główny plik pluginu. Ten plik stanowi punkt wejścia do pluginu i informuje WordPress o jego istnieniu za pomocą bloku komentarzy umieszczonego na początku pliku.
Napisz informacje o nagłówku wtyczki.
W właśnie utworzonym pliku PHP należy dodać standardowy nagłówek pliku rozszerzenia. Na przykład, rozszerzenie o nazwie “Witajstwo na stronie” może zacząć się w następujący sposób:
<?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
* Domain Path: /languages
*/ WordPress skanuje… wp-content/plugins We wszystkich plikach PHP znajdujących się w katalogu należy odczytać określone informacje zawarte w komentarzach i wyświetlić je na stronie zarządzania pluginami w tle aplikacji. Text Domain Wykorzystywane do celów internacjonalizacji.Domain Path Zaznaczono lokalizację pliku językowego.
Kod implementujący kluczowe funkcje
Poniżej informacji w nagłówku możesz zacząć pisać kod funkcjonalny pluginu. Ujmijmy jako przykład prostą funkcję: wyświetlenie powitania w górnym lewym rogu nagłówka strony internetowej. Aby uniknąć bezpośrednich zmian w pliku tematycznym (tema), użyjemy systemu hooków w WordPress.
Najpierw musimy stworzyć funkcję, która będzie wyświetlać powitanie. Potem użyjemy tej funkcji. add_action Funkcja przypisuje ten wydajnik do jakiegoś działania wykonywanego w WordPressie, na przykład… wp_footer。
Polecamy lekturę. Kompletny przewodnik po tworzeniu wtyczek do WordPressa: od podstaw do praktycznego wdrożenia.。
// 定义一个函数来输出问候语
function my_first_plugin_display_greeting() {
echo '<p style="position: fixed; bottom: 10px; left: 10px; background: #f1f1f1; padding: 10px; border-radius: 5px;">Witaj, zapraszam na moją stronę internetową!</p>';
}
// 使用 add_action 钩子将函数挂载到 wp_footer 动作
add_action( 'wp_footer', 'my_first_plugin_display_greeting' ); Po ukończeniu powyższego kodu, przeniesij folder z tym pluginem (na przykład…) my-first-pluginCałość należy skopiować do katalogu instalacji WordPress. wp-content/plugins/ Nie ma żadnych błędów w tekście. Po uruchomieniu modułu “Site Greeting” powinno pojawić się przygotowane powitanie na dole strony głównej twojego witryny po wejściu na niej. Aby to zrobić, wystarczy zalogować się do panelu administracyjnego WordPress, przejść do menu “Dodatki” (Plugins) i włączyć ten moduł.
Dodać opcje zarządzania dla pluginu
Dodatek o pełnej funkcjonalności często wymaga strony konfiguracji, która umożliwia administratorowi dokonywanie ustawień w backendzie WordPress. To obejmuje tworzenie menu administracyjnego oraz implementację logiki obsługi opcji.
Stwórz stronę ustawień wtyczki.
WordPress oferuje funkcje do dodawania stron konfiguracji dla wtyczek. Zwykle korzystamy z nich… add_options_page 或 add_menu_page Funkcje typu “add_page” są używane do dodawania tej strony do menu w tle aplikacji. Poniższy przykład pokazuje, jak dodać prostą podstranicę z ustawieniami do głównego menu „Ustawienia”.
Najpierw należy stworzyć funkcję, która będzie renderować zawartość HTML strony konfiguracji.
// 渲染插件设置页面的函数
function my_first_plugin_settings_page() {
?>
<div class="wrap">
<h1>Ustawienie powitania na stronie internetowej</h1>
<form method="post" action="/pl/options.php/" data-trp-original-action="options.php">
<?php
settings_fields( 'my_first_plugin_settings_group' );
do_settings_sections( 'my-first-plugin' );
submit_button();
?>
<input type="hidden" name="trp-form-language" value="pl"/></form>
</div>
<?php
} A potem, użyj… add_action Hak znajduje się w… admin_menu Strona rejestracji na etapie.
// 将设置页面添加到后台菜单
function my_first_plugin_add_admin_menu() {
add_options_page(
'问候语设置', // 页面标题
'站点问候语', // 菜单标题
'manage_options', // 权限要求
'my-first-plugin', // 菜单别名
'my_first_plugin_settings_page' // 渲染函数
);
}
add_action( 'admin_menu', 'my_first_plugin_add_admin_menu' ); Pola ustawień rejestracji oraz zapis danych
Nie wystarczy tylko strony web; musimy określić konkretnych polów do ustawiania (np. pola tekstowe, pola wyboru) oraz zająć się zapisem danych. Do tego potrzebny jest dostęp do API do ustawiania w WordPress. register_setting、add_settings_section 和 add_settings_field Funkcje takie jak…
Polecamy lekturę. Od zera do jednego: Autorytetywny przewodnik i praktyczny kurs rozwoju pluginów dla WordPressa。
Następny kod rejestruje grupę ustawień oraz pole tekstowe, które umożliwiają użytkownikowi samodzielne ustawienie treści powitania.
// 初始化插件的设置
function my_first_plugin_settings_init() {
// 注册一个设置,将其保存到 `options` 表的 `my_first_plugin_greeting_text` 字段中
register_setting( 'my_first_plugin_settings_group', 'my_first_plugin_greeting_text' );
// 在页面中添加一个设置区域
add_settings_section(
'my_first_plugin_section',
'自定义问候语',
null,
'my-first-plugin'
);
// 在设置区域中添加一个文本字段
add_settings_field(
'my_first_plugin_field',
'问候语文本',
'my_first_plugin_field_render',
'my-first-plugin',
'my_first_plugin_section'
);
}
add_action( 'admin_init', 'my_first_plugin_settings_init' );
// 渲染文本输入框的函数
function my_first_plugin_field_render() {
$option = get_option( 'my_first_plugin_greeting_text', '你好,欢迎来到我的网站!' );
echo '<input type="text" name="my_first_plugin_greeting_text" value="' . esc_attr( $option ) . '" style="width: 300px;" />';
} Na koniec musimy zmienić funkcję, która wcześniej wyświetlała powitanie, aby czytała ustawienia użytkownika z bazy danych.
function my_first_plugin_display_greeting() {
$greeting_text = get_option( 'my_first_plugin_greeting_text', '你好,欢迎来到我的网站!' );
echo '<p style="position: fixed; bottom: 10px; left: 10px; background: #f1f1f1; padding: 10px; border-radius: 5px;">'`.esc_html($greeting_text)`.'</p>';
} Bezpieczeństwo wtyczek oraz najlepsze praktyki ich stosowania
Podczas tworzenia wtyczek bezpieczeństwo jest najważniejszym aspektem do uwzględnienia. Nieszybkie kod może doprowadzić do ataku na witrynę internetową. Poniżej znajdują się kilka kluczowych zasad bezpieczeństwa.
Weryfikacja i przygotowanie danych
W każdym momencie, gdy pobierasz dane z wprowadzanych przez użytkownika informacji (np. $_POST, $_GET) lub z bazy danych, należy założyć, że te dane mogą być niepełnowartościowe. Przed wyświetleniem ich w przeglądarcu lub zapisem do bazy danych konieczne jest ich sprawdzenie i przygotowanie (np. usunięcie niepotrzebnych znaków, poprawienie błędów itd.).
W przypadku treści wyświetlanych na stronie HTML należy użyć < esc_html()、esc_attr() 或 wp_kses_post() Funkcje takie jak escape są używane do zapobiegania atakom typu XSS (Cross-Site Scripting).
W przypadku zmiennych używanych w zapytach do bazy danych należy stosować zapisy prekompilowane lub inne metody, które zwiększają wydajność i bezpieczeństwo kodu. $wpdb->prepare() Taki sposób.
W naszym przykładzie, przy zapisywaniu ustawień, WordPress… register_setting Funkcja automatycznie wykona kilka podstawowych czynności czyszczenia. Podczas wydawania wyników użyliśmy… esc_html() Aby upewnić się, że elementy HTML w tekście powitania są bezpiecznie escape’owane (przerobione) na zwykły tekst.
Używanie nie-Ce elementów oraz kontroli upoważnień
Gdy obsługuje się wysyłanie formularzy z witryny administracyjnej, konieczne jest sprawdzenie legalności żądania. To obejmuje sprawdzenie upoważnień użytkownika oraz weryfikację losowych numerów.
W formularzu na stronie ustawień…settings_fields() Funkcja automatycznie uwzględnia weryfikację niezgodności z wymaganiami standardu CE (Conformity Assessment). Jeśli jednak tworzysz własne procedury obsługi żądań AJAX lub niestandardowe formularze, konieczna jest ręczna weryfikacja. Najczęściej do tego celu używa się specjalnych bibliotek lub narzędzi. current_user_can() Sprawdź uprawnienia i użyj je. check_admin_referer() 或 wp_verify_nonce() Sprawdź, czy liczba wygenerowana losowo jest poprawna.
Na przykład, w zdefiniowanej funkcji obsługi wysyłania danych:
function my_plugin_handle_form_submit() {
// 检查权限
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( '权限不足' );
}
// 验证随机数
if ( ! isset( $_POST['my_nonce_field'] ) || ! wp_verify_nonce( $_POST['my_nonce_field'], 'my_action' ) ) {
wp_die( '安全校验失败' );
}
// ... 处理安全的数据 ...
} Podsumowanie.
Dzięki temu przewodnikowi udało ci się przeprowadzić cały proces rozwoju od prostego pliku w języku PHP do wysokiej jakości wtyczki do WordPress, zawierającej funkcje zarządzania w tle. Nauczyłeś się o podstawowej strukturze wtyczek, sposobach włączenia nowych funkcji za pomocą „hooków akcji” (action hooks), tworzenia konfigurowalnych stron opcji za pomocą API WordPress, a także o kluczowych zasadach bezpieczeństwa. Pamiętaj, że dobra wtyczka nie tylko musi mieć potężne funkcje, ale także musi mieć jasno strukturyzowany, bezpieczny i niezawodny kod, który spełnia standardy programowania WordPress. Rozpoczynając od tej prostej wtyczki, możesz dalej eksplorować zaawansowane funkcje, takie jak skrócone kody, dodatkowe narzędzia czy możliwości personalizacji typów artykułów, tworząc stopniowo bardziej złożone rozszerzenia.
FAQ – najczęściej zadawane pytania.
Jak dodać wsparcie dla wielu języków do pluginu?
Aby dodać wsparcie dla lokalizacji (i18n) w pluginie, konieczne jest wykorzystanie polów tekstowych oraz funkcji tłumaczeniowych. Najpierw upewnij się, że w nagłówku pliku pluginu zostały poprawnie ustawione odpowiednie elementy. Text Domain 和 Domain PathW kodzie wszystkie teksty, które wymagają tłumaczenia, należy umieścić w specjalnych zagnaczkach lub obiektach przeznaczonych do przechowywania tekstu do tłumaczenia. __() 或 _e() Następnie należy zainstalować odpowiednie moduły, które zawierają funkcje potrzebne do tłumaczeń. Po tym można użyć narzędzi takich jak Poedit, aby stworzyć plik szablonu POT, a także pliki tłumaczeniowe w formatach .mo i .po. Te pliki należy umieścić w katalogu językowym wskazanym przez plugin.
Na przykład:echo esc_html( __( ‘Hello, World!’, ‘my-first-plugin’ ) );Gdy użytkownik zmienia język, WordPress automatycznie załadowa odpowiednie pliki tłumaczeniowe.
Jak uniknąć konfliktów pomiędzy nazwami funkcji w różnych pluginach?
Najlepszą praktyką unikania konfliktów nazw funkcji jest używanie przestrzeni nazw (PHP 5.3+) lub dodawanie unikalnych prefiksów do wszystkich funkcji, klas i stałych. Prefiks musi być wystarczająco wyjątkowy; najczęściej używa się skrótów lub pełnych nazw pluginów.
Na przykład, nie używaj… display_greeting()Zamiast tego należy użyć… my_first_plugin_display_greeting()Jeśli używasz przestrzeni nazw w PHP, możesz je deklarować na początku pliku. namespace MyFirstPlugin;Następnie wewnątrz używa się krótkich nazw funkcji, a przy wywoływaniu z zewnątrz nazwy funkcji są rozpoznawane za pomocą przestrzeni nazw (namespace).
Jak po zakończeniu rozwoju opublikować plugin w oficjalnym katalogu?
Aby opublikować plugin w oficjalnym katalogu WordPress.org, musisz najpierw utworzyć konto na stronie WordPress.org i złożyć plugin. Proces polega na następujących krokach: upewnij się, że kod jest zgodny z licencją GPL, przejdź sprawdzenie zgodności z standardami PHPCS, przygotuj plik readme.txt w określonym formacie, udostępnij jasne zdjęcia i dokumentację. Po złożeniu wniosku kod zostanie sprawdzony przez moderatorów, a po przyznaniu go za dopuszczalny plugin zostanie opublikowany. Po opublikowaniu użytkownicy będą mogli go wyszukać i zainstalować bezpośrednio z panelu administracyjnego WordPress.
Jak pluginy mogą zachować kompatybilność z starszymi wersjami WordPress?
Aby zachować zgodność z wcześniejszymi wersjami WordPress, podczas rozwoju należy sprawdzać aktualną wersję tego systemu i używać warunkowych instrukcji („conditional statements”) do obsługi kodu zależnego od nowszych API. Ponadto należy unikać funkcji, które zostały wykreślone z oficjalnej dokumentacji; jeśli ich używanie jest konieczne, musi istnieć alternatywny sposób ich zastąpienia. W pliku readme.txt pluginu należy jasno określić minimalną wymaganą wersję WordPress oraz udostępnić użytkownikom wyraźne informacje na temat tego. Regularne testowanie działania pluginu w starszych wersjach systemu jest kluczowym elementem utrzymania kompatybilności.
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.
- 10 najlepszych pluginów do poprawienia wydajności i bezpieczeństwa witryny WordPress
- Pełny przewodnik po konfiguracji i użyciu pluginów dla WooCommerce: jak stworzyć własną stronę e-commerce od zera
- Przewodnik po tworzeniu pluginów dla WordPress: jak stworzyć swój pierwszy własny plugin od zera
- Czemu wybraliście WooCommerce jako rozwiązanie do sprzedaży w sieci internetowej?
- Jak stać się deweloperem pluginów dla WordPressa: pełny przewodnik od zera do jednego