Zrozumienie podstawowej architektury pluginów WordPress
Przed rozpoczęciem rozwoju należy zrozumieć podstawowe koncepty i zasady działania pluginów WordPress. Plugin to w istocie zbiór plików w języku PHP, które umożliwiają rozszerzenie funkcjonalności WordPress. Zwykle zawierają instrukcje, kod wykonywany, pliki zasobów itd. Ich działanie jest w całości zależne od systemu hooków (hooks) dostępnego w WordPress.
Badanie struktury standardowego pliku dla wtyczek
Standardowy plugin dla WordPressa zwykle stosuje określoną strukturę katalogów. Główny plik pluginu, na przykład… my-first-plugin.phpMusi zostać umieszczone w… /wp-content/plugins/ W katalogu lub w jego podkatalogach. Ten plik jest niezbyt ważny, ponieważ zawiera informacje o nagłówkach pluginów, które są potrzebne, by system WordPress mógł rozpoznać twoj plugin.
Typowy katalog z dodatkami (plug-inów) może zawierać następujące elementy: plik głównego dodatku, a także foldery przeznaczone do przechowywania statycznych zasobów, takich jak JavaScript i CSS. assets/ folder, przeznaczony do plików z klasami w PHP includes/ Katalog, przeznaczony do użytkownika interfejsu admin/ 和 public/ folder, a także narzędzia do tłumaczenia plików languages/ Spis treści. Dobra struktura pomaga w organizacji i utrzymaniu kodu, szczególnie gdy funkcje wtyczek stają się złożone.
Polecamy lekturę. Rozwój pluginów dla WordPress: pełny przewodnik od poznania podstaw do osiągnięcia biegłości w tworzeniu własnych funkcji。
Znajomość kluczowych informacji zawartych w nagłówkach plików rozszerzeń (pluginów)
Każdy plugin musi zaczynać się od określonych metadanych (zwanych „Header”), które znajdują się w bloku komentarzy w języku PHP. To kluczowe wymaganie, aby WordPress mógł rozpoznać daną wtyczkę. Podstawowy format tych metadanych jest następujący:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://www.example.com/my-first-plugin
* Description: 这是一个简短描述,介绍插件功能的句子。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://www.example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
* Domain Path: /languages
*/ Wśród nichPlugin Name To konieczne; wszystkie inne informacje są opcjonalne, ale zaleca się je podać. Zwłaszcza… Text Domain 和 Domain PathSą przygotowane z myślą o internacionalizacji pluginów (podporze wielu języków). WordPress odczytuje te informacje i wyświetla je na stronie zarządzania pluginami w tle systemu.
Ustawienie lokalnego środowiska rozwoju i stworzenie pierwszego dodatku (pluginu)
Przed rozpoczęciem kodowania niezbędne jest posiadanie izolowanego, łatwo dostosowalnego środowiska rozwoju lokalnego. Dzięki temu można uniknąć ryzyk, związanych z bezpośrednim testowaniem witryny w sieci.
Konfiguracja lokalnego łańca narzędzi do rozwoju
Zaleca się korzystać z lokalnych środowisk integracyjnych, takich jak Local by Flywheel, XAMPP lub Laragon. Te narzędzia umożliwiają jednorazową instalację niezbędnych komponentów: PHP, MySQL oraz serwera webowego dla WordPress. Ponadto potrzebny będzie edytor kodu, np. Visual Studio Code lub PHPStorm, który oferuje funkcje podkreślania syntaksy, sugestii kodu oraz debugowania. Upewnij się, że Twoja wersja PHP jest kompatybilna z serwerem, na którym będzie działać WordPress – zwykle zaleca się używać wersji PHP 7.4 lub wyższych.
Napisz i aktywuj prosty plugin.
Teraz przygotujmy pierwszy funkcjonalny plugin. /wp-content/plugins/ W katalogu utwórz nowy folder o nazwie… my-first-pluginW tym folderze utwórz plik o nazwie my-first-plugin.php Plik „”.
Polecamy lekturę. Światowy przewodnik po rozwoju pluginów dla WordPressa: jak stworzyć swój pierwszy plugin od zera。
Kopij informacje o nagłówku pliku, które zostały wspomnione w poprzednim rozdziale, na początek tego pliku. Następnie dodajemy prostą funkcję: automatyczne dodawanie ustalonego tekstu na koniec treści artykułu. Do tego potrzebny będzie “hak” (hook) filtrów w WordPress. Dodaj następujący kod poniżej informacji o nagłówku:
// 在文章内容后添加自定义文本
function myfp_add_footer_text( $content ) {
// 仅对主循环中的单篇文章生效
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p><em>Dziękujemy za czytanie! Ten tekst został przygotowany z udziałem projektu “Moje pierwsze dodatki” („My First Plugins”).</em></p>';
$content .= $custom_text;
}
return $content;
}
// 将函数挂载到 ‘the_content’ 过滤器上
add_filter( 'the_content', 'myfp_add_footer_text' ); Po zapisaniu pliku loguj się do panelu administracyjnego WordPress i wejdź na stronę “Dodatki”. Powinien pojawić się nowy dodatek o nazwie “Moje pierwsze dodatko”. Kliknij na “Uwolnij”. Teraz sprawdź jakąś artykulikę na stronie internetowej – tekst, który dodaliśmy, powinien pojawić się na końcu treści artykułu. W ten sposób twój pierwszy dodatek do WordPress został uruchomiony z powodzeniem.
Opanowanie kluczowych technik rozwoju pluginów
Wielka rozszerzalność WordPressu opiera się na kilku kluczowych konceptach: hookach, API do konfiguracji (Options API), typach artykułów dostosowanych do potrzeb użytkownika (Custom Post Types, CPT) oraz operacjach nad bazą danych. Znajomość tych elementów stanowi podstawę dla dalszego rozwoju aplikacji zbudowanych na platformie WordPress.
Dokładne zrozumienie mechanizmów hooków akcji (actions) i filtrów (filters)
System hooków stanowi podstawę rozwoju wtyczek dla WordPressa i składa się z dwóch typów elementów: akcji (Actions) i filtrów (Filters). Akcje hooków są wykonywane w określonych momencach (np. podczas ładowania nagłówka strony lub przy zapisywaniu artykułu) i umożliwiają wykonywanie określonych działań, np. dodawanie menu lub wysyłanie wiadomości e-mail. add_action() Należy użyć funkcji, aby zamontować dysk.
Na przykład, w menu zarządzania w tle można dodać nową stronę:
function myfp_add_admin_menu() {
add_menu_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 权限
'myfp-settings', // 菜单slug
'myfp_settings_page', // 回调函数,用于显示页面内容
'dashicons-admin-generic', // 图标
20
);
}
add_action( 'admin_menu', 'myfp_add_admin_menu' ); Filtry hooki umożliwiają modyfikację danych. Przechwytują je przed ich użyciem (np. przed wyświetleniem w przeglądarcu lub zapisem do bazy danych), po czym można zmienić ich wartość i zwrócić nową. Takie funkcje zostały wykorzystane w naszym pierwszym pluginie. the_content To po prostu hook filtru.
Polecamy lekturę. Szczegółowa analiza WooCommerce: kompletny przewodnik po budowaniu wysokowydajnej witryny e-commerce od podstaw.。
Użyj API opcji do zapisywania ustawień wtyczki.
Dodatki często wymagają zapisania określonych ustawień, takich jak klucze API lub stan włączenia/wyłączenia funkcji. WordPress oferuje narzędzia do zarządzania tymi ustawieniami. Options API Można łatwo obsługiwać takie dane. Podstawowe funkcje to: add_option(), get_option(), update_option() 和 delete_option()。
Stwórz prostą stronę ustawień, aby móc używać tych funkcji. Najpierw definiuj funkcje odpowiedzialne za obsługę menu. myfp_settings_page Aby wyświetlić formularz:
function myfp_settings_page() {
?>
<div class="wrap">
<h1>Ustawienia mojej wtyczki.</h1>
<form method="post" action="/pl/options.php/" data-trp-original-action="options.php">
<?php
settings_fields( 'myfp_settings_group' ); // 输出安全字段
do_settings_sections( 'myfp-settings' ); // 输出设置部分
submit_button(); // 输出提交按钮
?>
<input type="hidden" name="trp-form-language" value="pl"/></form>
</div>
<?php
} A potem musisz użyć… register_setting(), add_settings_section() 和 add_settings_field() Można użyć funkcji typu `declare` i `initialize` do deklarowania i inicjalizacji tych polów ustawień. Dzięki temu dane będą bezpiecznie zapisane. wp_options W tabeli.
Stworzenie kompletnego przykładu pluginu do praktycznego zastosowania
Połączymy wiedzę zdobytą wcześniej, aby stworzyć nieco bardziej złożony, ale przydatny plugin: plugin do wyliczania czasu potrzebnego na przeczytanie artykułu. Pokaza on oczekiwany czas czytania pod nagłówkiem artykułu.
Tworzenie głównego pliku pluginu oraz funkcji realizujących poszczególne funkcje
Utworzenie nowej foldera z plikami rozszerzeń post-reading-time z głównym plikiem post-reading-time.phpWypełnij standardowe informacje o nagłówku pliku rozszerzenia. Następnie stworzymy funkcję kluczową do obliczenia czasu potrzebnego na przeczytanie tekstu.
function prt_calculate_reading_time( $post_id ) {
// 获取文章内容
$content = get_post_field( 'post_content', $post_id );
// 清除HTML标签和短代码,只计算文字
$text = strip_tags( strip_shortcodes( $content ) );
// 计算字数(中英文混合场景的简单处理)
$word_count = mb_strlen( $text, 'UTF-8' );
// 假设平均阅读速度为每分钟300字(可根据需要调整)
$reading_speed = 300;
// 计算分钟数,至少1分钟
$minutes = floor( $word_count / $reading_speed );
if ( $minutes < 1 ) {
$minutes = 1;
}
// 返回包含时间的字符串
return sprintf( _n( '约 %d 分钟读完', '约 %d 分钟读完', $minutes, 'post-reading-time' ), $minutes );
} Wyświetlanie informacji na stronie klienta w sposób zintegrowany z systemem zarządzania w tle.
Następnie musimy postanowić, jak wyświetlić tę informację o czasie. Najczęściej robi się to poprzez dodanie jej do metadanych artykułu (pod nagłówkiem). the_content Określone „hooki” dostępne w filtrach lub tematach. W tym przypadku użyjemy bardziej odpowiedniego „action hooka”. thesis_hook_before_post(Zależy od tematu) albo, w bardziej ogólnym przypadku, można prosto filtrować treść artykułów.
Aby uzyskać większą elastyczność, stworzyliśmy skrót (shortcode) oraz małe narzędzie (widget) i udostępniliśmy prostą opcję konfiguracji, umożliwiającą kontrolę nad automatycznym wyświetlaniem tych elementów.
Najpierw należy zarejestrować krótki kod:
function prt_reading_time_shortcode( $atts ) {
$atts = shortcode_atts( array(
'id' => get_the_ID(),
), $atts, 'reading_time' );
$time_text = prt_calculate_reading_time( $atts['id'] );
return '<span class="reading-time">'.$time_text.'</span>'add_shortcode( 'reading_time', 'prt_reading_time_shortcode' ); Następnie możemy automatycznie dodać wyniki na początek treści artykułu (za pomocą filtrów):
function prt_prepend_to_content( $content ) {
if ( is_single() && get_option( 'prt_auto_display', '1' ) == '1' ) {
$time_html = '<div class="post-reading-time">' . prt_calculate_reading_time( get_the_ID() ) . '</div>';
$content = $time_html . $content;
}
return $content;
}
add_filter( 'the_content', 'prt_prepend_to_content' ); Ponadto musisz stworzyć opcję ustawień w tle systemu (w obszarze administracji). prt_auto_displayUżytkownicy mogą wybrać, czy chcą włączyć funkcję automatycznego wyświetlania. Dzięki temu udało się stworzyć dodatek, który jest kompletny pod względem funkcji i posiada jasną strukturę.
Podsumowanie.
Zaczęliśmy od zrozumienia podstawowej architektury pluginów oraz informacji zawartych w ich plikach rozpoczynających (“header files”), po czym stopniowo przygotowaliśmy środowisko do rozwoju i stworzyliśmy pierwszy prosty plugin z dowolną funkcją. Głębokie poznanie kluczowych elementów rozszerzalności WordPress – systemu hooków – umożliwiło nam wpływanie na proces wykonywania kodu i modyfikację danych bez konieczności edycji źródłowego kodu platformy. Za pomocą API Options mogliśmy tworzyć ustawienia, które są przechowywane po zamknięciu pluginu. Na koniec, przykładem kompletnego pluginu do wyliczania czasu potrzebnego na odczytanie artykułu, połączyliśmy teoretyczne znalności z praktyką, obejmując cały proces rozwoju, od pisania logiki funkcji, tworzenia skrótów kódu po integrację z interfejsem użytkownika. Pamiętaj: dobrej realizacji pluginu konieczne są jasne planowanie, stosowanie standardów programowania WordPress oraz zawsze uwzględnianie aspektów bezpieczeństwa, wydajności i używalności.
FAQ – najczęściej zadawane pytania.
Jaka wiedza jest potrzebna, by tworzyć wtyczki do WordPressa?
Konieczne jest posiadanie solidnych umiejętności programowania w PHP, ponieważ kod pluginów jest w większości przypadków pisany w tym języku. Ponadto należy mieć podstawową znajomość HTML, CSS i JavaScript, aby móc pracować z wyglądem i interakcją strony internetowej. Znajomość podstawowych zasad MySQL pomoże zrozumieć, w jaki sposób WordPress przechowuje i wyszukuje dane. Najważniejsze jest przyzwyczajenie się do czytania oficjalnego przewodnika rozwoju WordPress (Codex) oraz referencji dla programistów (Developer Reference).
Jak zapewnić, że plugin, który rozwijam, jest bezpieczny?
Bezpieczeństwo jest kluczowe. Zawsze sprawdź i oczyszczaj dane wprowadzane przez użytkowników, a także uniknij niepotrzebnego wykorzystania specjalnych znaków w wydawanych wynikach. Aby zapobiec atakom typu CSRF (Cross-Site Request Forgery), używaj wartości typu nonce (nonce) dostępnych w WordPress. Podczas tworzenia zapytań do bazy danych postaraj się zachować najwyższy poziom bezpieczeństwa. $wpdb Metody dostępne w klasie (np.) prepare()Aby zapobiec atakom typu SQL injection, należy unikać używania niebezpiecznych funkcji. eval()Regularnie aktualizuj swoje dodatki, aby naprawić znane błędy (zwane „vulnerabilities”).
W jakim katalogu powinny być umieszczone pliki rozszerzeń (plug-iny)?
Dodatki do WordPressa muszą zostać umieszczone w odpowiednim miejscu na stronie internetowej. /wp-content/plugins/ W katalogu można umieścić główny plik PHP pluginu bezpośrednio w jego korzeniu, ale bardziej standardowym rozwiązaniem jest stworzenie osobnej podkatalogu dla każdego pluginu i umieszczenie w niej wszystkich niezbędnych plików (PHP, JS, CSS, zdjęć itd.). Dzięki temu struktura plików jest jasna i unikają się konflikty z innymi pluginami.
Jak dodać stronę z ustawieniami do mojego pluginu?
Dodawanie strony konfiguracji do pluginu zwykle wymaga kilku kroków: najpierw należy… add_action( ‘admin_menu’, ‘your_function’ ) Zarejestruj nowy element menu administracyjnego lub podmenu. Następnie w funkcji wywołanej po zakończeniu procedury wyślij HTML formularza na stronę. Potem użyj… register_setting()、add_settings_section() 和 add_settings_field() Możesz użyć funkcji API Settings API do deklarowania i powiązania pola ustawień, co umożliwi automatyczne sprawdzanie upoważnień, weryfikację niektórych danych (np. niektórych typów danych) oraz zapisywanie wybranych opcji. Na koniec, użyj tych funkcji w formularzach. settings_fields() 和 do_settings_sections() Funkcja służy do wyświetlania niezbędnych polów.
Co to są „hooki” (hooks) i dlaczego są takie ważne?
“Hakówki” (ang. hooks) to specjalne punkty w kodzie źródłowym WordPress, które umożliwiają dodatkowym modułom (plug-inom) i tematom (themes) wpływ na proces wykonywania standardowego kodu platformy. Rozróżniamy hakówki akcji (Actions) i hakówki filtrów (Filters). Hakówki akcji są wykonywane w momencie wystąpienia określonych wydarzeń, co umożliwia dodawanie nowych funkcji. Hakówki filtrów pozwalają modyfikować dane przed ich użyciem lub zapisem. System hakówków stanowi kluczową część rozszerzalności WordPress – dzięki niemu programiści mogą znacząco zmieniać lub ulepszać zachowanie platformy, bez konieczności modyfikacji jej podstawowych plików. To gwarantuje czystość i łatwość aktualizacji WordPress.
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 – Kompleksowy przewodnik: Jak stworzyć profesjonalny sklep online na WordPress od zera
- 10 przydatnych trików dla WordPressu, które poprawią wydajność witryny i jej pozycję w wynikach wyszukiwania (SEO)
- Pilne dla początkujących: Przewodnik po całym procesie budowy witryny internetowej od zera
- Przewodnik po tworzeniu stron internetowych za pomocą WooCommerce: jak stworzyć profesjonalną stronę e-handlu od zera do końca
- Pełny przewodnik po optymalizacji szybkości witryny WordPress: od konfiguracji serwera po wybór dostępnych pluginów – praktyczne poradы