Przygotowanie środowiska do rozwoju wtyczek dla WordPress
Przed rozpoczęciem pisania kodu potrzebny jest odpowiedni lokalny środowisko rozwoju. Zdecydowanie zaleca się nie rozwijać pluginów bezpośrednio na produkcyjnym serwerze online. Typowe środowisko rozwoju dla WordPress składa się z oprogramowania do obsługi lokalnego serwera (np. XAMPP, MAMP, Local by Flywheel lub Docker), edytora kodu (np. VS Code, PHPStorm) oraz nowo instalowanego WordPressa.
Musisz upewnić się, że twoja wersja PHP jest zgodna z wymaganiami wersji WordPress, którą chcesz używać. Zwykle core WordPress jest kompatybilny z kilkoma wersjami PHP. Jeśli tworzysz dodatki (plugi), zaleca się używać PHP 7.4 lub wyższej, aby korzystać z nowszych zasad gramatyki i funkcji języka PHP. Ponadto konieczne jest włączenie odpowiednich ustawień w panelu administracyjnym WordPress.WP_DEBUGTen wzór może pomóc ci szybko lokalizować błędy podczas procesu rozwoju.wp-config.phpW pliku znajdź i ustaw następujące stałe:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false ); Takie ustawienie umożliwi zapisywanie informacji o błędach./wp-content/debug.logPliki są przechowywane w odpowiednim miejscu, a nie wyświetlają się bezpośrednio na stronie, co nie wpływa na doświadczenie użytkownika na stronie frontowej. To najlepsza praktyka.
Polecamy lekturę. Od zera do jednego: Autorytetywny przewodnik i praktyczny kurs rozwoju pluginów dla WordPressa。
Stworz swoj pierwszy plik z rozszerzeniem (plugin).
Wszystkie pliki rozszerzeń (plug-inów) do WordPressa są przechowywane w określonym miejscu na serwerze./wp-content/plugins/Katalog zawiera wszystkie dostępne plugi. Każdy plugin mieje swoją własną folderę, a nazwa tej folderki powinna być krótka i jasno odzwiercać funkcje plugina. Teraz przygotujemy pierwszy plugin.
Napisanie głównego pliku pluginu
W folderze z twoimi pluginami należy stworzyć główny plik PHP. Nazwa tego pliku zwykle jest identyczna z nazwą foldera. Na przykład:my-first-plugin.phpTen plik stanowi wejście do pluginu i musi zawierać określony komentarz typu „plugin header”. WordPress używa tych metadanych do wyświetlania twojego pluginu na stronie zarządzania pluginami w tle.
<?php
/**
* Plugin Name: 我的第一个定制插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个学习WordPress插件开发的入门示例插件。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
* Domain Path: /languages
*/ Po zapisaniu tego pliku będzie on dostępny na stronie “Dodatki” w panelu administracyjnym WordPress. Możesz go teraz aktywować – choć na razie nie ma żadnych funkcji, to to ważny krok w procesie implementacji dodatku. Informacje znajdują się w nagłówku pliku dodatku (plugin header).Text Domain和Domain PathZastosowane do procesów internacjonalizacji i lokalizacji, w przygotowaniu do przyszłych wypuszczeń dodatków (plug-inów).
Podstawowe aspekty bezpieczeństwa i struktury pluginów
Bezpieczeństwo to najważniejszy aspekt przy rozwijaniu dodatków (pluginów). Najprostszym sposobem na zapobieganie bezpośredniemu dostępu do plików dodatku jest włączenie kontroli tego dostępu na początku plików. Możesz to zrobić, dodając odpowiedni kod na początku twojego głównego pliku dodatku, po komentarzach umieszczenych na początku pliku.
// 防止直接文件访问
if ( ! defined( 'ABSPATH' ) ) {
exit;
} Ten kod sprawdza, czy dane są konstantami.ABSPATHCzy plik PHP jest definiowany jako dostępny za pomocą adresu URL? Jeśli nie (co może oznaczać, że ktoś próbuje otworzyć ten plik bezpośrednio poprzez adres URL), to wykonywanie skryptu musi zostać przerwane. To standardowa i konieczna metoda bezpieczeństwa, którą powinny mieć wszystkie wysokiej jakości pluginy do WordPress.
Polecamy lekturę. Kompletny przewodnik po tworzeniu wtyczek WordPress: praktyczny poradnik od podstaw do publikacji i uruchomienia.。
Dodanie kluczowych funkcji do pluginu
Zadaniem pluginów jest rozszerzenie funkcjonalności WordPress. Sprawdźmy, jak dodać nowe funkcje, przykładając dwa proste przypadki: tworzenie strony zarządzania oraz dodawanie treści na stronie front-end.
Dodaj prosty menu zarządzania.
Najpierw nauczymy się, jak dodać stronę menu należącą do naszego własnego pluginu w interfejsie administratora na stronie serwera. Do tego potrzebny jest system “hooków” („hooks”) w WordPress.admin_menuAktywny hook.
Dodajemy funkcję do głównego pliku pluginu.mfp_add_admin_menuA następnie użyjadd_actionFunkcja umożliwia jej montaż (zainstalowanie) w odpowiednim miejscu.admin_menuNa haczu.
function mfp_add_admin_menu() {
add_menu_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 权限要求
'my-first-plugin', // 菜单Slug
'mfp_admin_page_html', // 用于渲染页面内容的回调函数
'dashicons-admin-generic', // 图标(使用Dashicons)
30 // 菜单位置
);
}
add_action( 'admin_menu', 'mfp_add_admin_menu' ); Następnie musimy definiować funkcje wywoływane w powyżej opisanej sytuacji (tzw. funkcje callback).mfp_admin_page_htmlNie mogę wygenerować treści HTML strony bez dostępu do jej źródłowego kodu. Prosz o podanie kodu HTML, aby móc go przetłumaczyć.
function mfp_admin_page_html() {
// 再次检查用户权限
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
?>
<div class="wrap">
<h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
<p>Witaj, światie! To moja pierwsza strona do zarządzania dodatkami (plug-inami).</p>
</div>
<?php
} Teraz odśwież stronę administracyjną WordPress i powinno pojawić się nowy element menu “Moje pluginy” w lewym menu nawigacyjnym.
Dodaj tekst na dno strony front-end.
Poza zarządzaniem częścią serwera, częściej musimy modyfikować frontend. Na przykład chcemy dodać informację o autorskich prawach na dnie wszystkich artykułów i stron. Tym razem użyjemy…the_contentFiltrowe hooki.
Polecamy lekturę. Przewodnik po rozwoju pluginów dla WordPressa: jak stworzyć swoje pierwsze rozszerzenie funkcjonalne od zera。
Filtry hooki (Filter Hooki) umożliwiają modyfikację danych przekazywanych do funkcji. Utworzymy taką funkcję.mfp_add_footer_textPrzyjmuje treść artykułu jako parametr i do niej dodaje nasz własny tekst.
function mfp_add_footer_text( $content ) {
// 仅对主循环中的单篇文章和页面生效
if ( is_single() && in_the_loop() && is_main_query() ) {
$footer_text = '<p><em>Ten tekst jest wspierany przez moje pierwsze dodatkowe narzędzie (plugin).</em></p>';
$content .= $footer_text;
}
return $content;
}
add_filter( 'the_content', 'mfp_add_footer_text' ); Ten kod najpierw sprawdza, czy obecne środowisko stanowi pojedyny artykel lub stronę, a także czy znajdujemy się w głównym cyklu wykonywania zapytań (query loop), aby uniknąć dodawania tekstu w innych miejscach (np. w widgetach lub opisach artykułów). Następnie dodaje segment HTML zawierający informacje o autorskich prawach do oryginalnego tekstu i pozwala na jego wyświetlenie.
Dziś porozmawimy o zaawansowanych praktykach rozwoju pluginów.
Po opanowaniu podstaw zrozumienie niektórych zaawansowanych technik i praktyk pozwoli zrobić twoje wtyczki bardziej profesjonalnymi i wydajnymi.
Implementowanie konfigurowalnych opcji dla wtyczek
Dojrzały plugin zwykle umożliwia konfigurację przez użytkownika. WordPress oferuje API do ustawień, aby ułatwić proces tworzenia stron z opcjami. To wymaga rejestracji ustawień, dodawania polów do ustawień oraz organizowania tych ustawień w określonych obszarach. Choć jest to bardziej złożone niż dodawanie prostych stron menu, automatycznie dba o bezpieczeństwo (np. poprzez weryfikację danych typu Nonce) oraz o zapisanych danych z formularzy.
Zwykle opcje pluginów przechowujemy w postaci arrayu w WordPress.wp_optionsW tabeli. Możesz to użyć.add_option()、get_option()和update_option()Funkcje służą do manipulacji danymi z twojego pluginu.
Używaj klas do organizacji kodu wtyczek.
Gdy liczba funkcji w pluginie rośnie, umieszczenie wszystkich z nich w globalnym przestrzeniu nazw może doprowadzić do konfliktów nazw funkcji. Najlepszą praktyką jest używanie klas w PHP do pakowania funkcji pluginu. To nie tylko pomaga lepiej zorganizować kod, ale także umożliwia korzystanie z zalet programowania obiektowego, takich jak automatyczne ładowanie elementów, zasady zarządzania przestrzennymi nazw (w przypadku PHP 5.3 i wyższych wersji) oraz lepsza izolacja kodu.
Główny plik pluginu bazowanego na klasach może wyglądać tak:
if ( ! defined( 'ABSPATH' ) ) exit;
class My_First_Plugin {
public function __construct() {
// 在构造函数中挂载所有钩子
add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
add_filter( 'the_content', array( $this, 'add_footer_text' ) );
}
public function add_admin_menu() { /* ... */ }
public function add_footer_text( $content ) { /* ... */ }
}
// 初始化插件
new My_First_Plugin(); Taki sposób organizacji kodu umożliwia zgromadzenie wszystkich metod związanych z daną klasą w jednym miejscu, co znacząco poprawia jej łatwość utrzymania.
Podsumowanie.
Ten przewodnik pokazał ci cały proces tworzenia własnego, dostosowanego plugina dla WordPressa, od początku do końca. Nauczyłeś się, jak przygotować środowisko do pracy, jak stworzyć bezpieczną strukturę plików pluginu, jak używać aktywnych („action”) i filtrowych („filter”) hooków do rozszerzenia funkcji zarówno na poziomie backendu, jak i frontendu, a także poznałeś zaawansowane metody rozwoju oprogramowania, takie jak programowanie obiektowe i konfiguracja API. Kluczowym elementem w rozwoju pluginów jest zrozumienie systemu hooków w WordPressie – on oferuje wiele możliwości, aby zmienić zachowanie platformy bez konieczności modyfikacji jej kodu źródłowego. Najlepszym sposobem na opanowanie tej umiejętności jest regularna praktyka: zaczynaj od pisania prostych funkcji i stopniowo buduj bardziej złożone pluginy.
FAQ – najczęściej zadawane pytania.
Jaki poziom znajomości PHP jest wymagany do rozwoju wtyczki ###?
Musisz opanować podstawową gramatykę PHP, w tym związane z zmiannicami, tablicami, funkcjami, warunkowymi instrukcjami i pętłami. Najważniejsze jest zrozumienie sposobów interakcji z API WordPress, np. używania hooków.add_action, add_filterWiedza o programowaniu obiektowym (OOP) jest niezwykle przydatna przy tworzeniu złożonych wtyczek (pluginów) dla WordPress.
Jak debugować własny stworzony plugin?
WłączWP_DEBUGKrokiem najważniejszym jest ustalenie odpowiedniego wzoru (modelu). Sprawdź to.wp-content/debug.logBieżący log błędów znajduje się w pliku. Możesz go również wykorzystywać w kodzie.var_dump()或error_log()Funkcja wyświetla informacje diagnostyczne. Na przykład:error_log( print_r( $variable, true ) );Można zapisywać zawartość dowolnej zmiennej do pliku debug.log. Używanie profesjonalnych narzędzi do debugowania, takich jak Query Monitor, może znacząco poprawić efektywność pracy.
Czy mogę używać wtyczkach bibliotek PHP zewnętrznych (tj. pochodzących od innych dostawców)?
Możliwe, ale należy to robić z ostrożnością. Aby uniknąć konfliktów wersji z innymi pluginami lub bibliotekami używanymi w tematach, zaleca się skorzystać z narzędzia do zarządzania zależnościami PHP – Composera – oraz z jego funkcji automatycznego ładowania bibliotek. Podczas pakowania i publikacji pluginu możesz albo włączyć pliki bibliotek do jego składu (zwracając uwagę na wymogi licencji tych bibliotek), albo poprosić użytkowników o samodzielne ich instalowanie na serwerze.
Jak po zakończeniu rozwoju opublikować plugin w oficjalnym katalogu WordPress?
Musisz odwiedzić stronę WordPress.org i złożyć swój plugin do sprawdzenia. Kod twojego pluginu musi spełniać oficjalne standardy i wytyczne dotyczące programowania, np. zapewniać bezpieczeństwo oraz umożliwiać tłumaczenie (internacjonalizację).__()和_e()Funkcja zawiera szczegółowe instrukcje dotyczące jej działania, a także dokładny opis wymagań i zasad stosowania.readme.txtPo przyznaniu pliku do publikacji twoje wtyczka 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.
- Jak wybrać i dostosować temat WordPress, który idealnie pasuje do twoich potrzeb?
- 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
- Od zera do jednego: Pełny przewodnik i praktyczne poradы na budowę profesjonalnych stron internetowych za pomocą WordPressa
- Pełny przewodnik po rozwoju pluginów dla WordPressa: od poznania podstaw do osiągnięcia biegłości w tworzeniu profesjonalnych rozszerzeń