W szerokim świecie Internetu WordPress dominuje na rynku systemów do zarządzania treścią dzięki swojej wielkiej rozszerzalności. Źródłem tej rozszerzalności są wtyczki (plug-iny). Dzięki ich tworzeniu można dodawać do witryny wszystkie funkcje, które tylko możesz sobie wyobrazić. Ten tekst pokazać ci, jak od zera stworzyć swoją pierwszą wtyczkę dla WordPressa, a także zapozna cię z jej podstawową strukturą i procesem rozwoju.
Podstawy pluginów w WordPressie i przygotowanie środowiska rozwojowego
Przed rozpoczęciem kodowania istotne jest zrozumienie natury pluginów WordPress oraz przygotowanie odpowiedniego środowiska rozwojowego. Plugin to w istocie jeden lub kilka plików w formacie PHP, które są zgodne z wymaganiami WordPress i działają w ramach specjalnych mechanizmów tego systemu.钩子(Wskaźniki interakcji) Interagują z core systemem.
Ogólna definicja pluginu:
Każdy plugin musi mieć jedno unikalne główne plikowanie, w którym w nagłówku, w określonym formacie, umieszczone są informacje o pluginie. Te informacje są używane przez WordPress na stronie zarządzania pluginami do identyfikacji pluginu oraz wyświetlania jego nazwy, opisu, wersji i innych metadanych.
Polecamy lekturę. Odkryj tajniki rozwoju dodatków (pluginów): stwórz swoje pierwsze rozszerzenie od zera。
Konfiguracja lokalnego środowiska deweloperskiego.
Aby robić rozwój programów w sposób efektywny i bezpieczny, zdecydowanie zaleca się korzystanie z lokalnego środowiska serwerowego. Możesz wybrać takie narzędzia jak XAMPP, MAMP, Local by Flywheel lub Docker. Kluczowe wymogi to instalacja PHP (w wersji kompatybilnej z twoim serwerem docelowym), MySQL/MariaDB oraz Apache/Nginx. Następnie pobierz najnowsze pliki źródłowe WordPress i zainstaluj je.
Stwórz swoje pierwsze wtyczkę: pomocnik do tworzenia powitań.
Teraz przygotujmy się do stworzenia prostego pluginu. Funkcja tego pluginu polega na automatycznym dodawaniu wybranego powitania na końcu treści artykułów na stronie internetowej.
Najpierw, w WordPress… wp-content/plugins W katalogu utwórz nowy folder o nazwie „new_folder”. my-first-greeting-pluginNastępnie, w tym folderze utwórz główny plik PHP; może mieć nazwę… my-first-greeting-plugin.php。
Informacje o nagłówku pliku rozszerzenia
Otworź główny plik i wpisz następujący kod, aby definiować plugin:
<?php
/**
* Plugin Name: 我的第一个问候语插件
* Plugin URI: https://yourwebsite.com/my-first-greeting-plugin
* Description: 这是一个练习用的插件,用于在文章末尾添加问候语。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://yourwebsite.com
* License: GPL v2 or later
* Text Domain: my-first-greeting-plugin
*/ Po zapisaniu pliku wejdź na stronę “Dodatki” w panelu administracyjnym WordPress i powinien pojawić się na liście dostępnych dodatków – możesz go wtedy aktywować. Oczywiście na razie nie będzie mieć żadnych funkcji.
Polecamy lekturę. 10 kluczowych porad i praktycznych wskazówek do optymalizacji wydajności witryny e-commerce bazowanej na platformie WooCommerce。
Użyj haczków („hooks”) do dodania kluczowych funkcji.
Funkcjonowanie WordPressu w dużej mierze jest zależne od mechanizmu “hooków” (ang. hooks), który składa się z kilku elementów:动作钩子(ACTION Hooks) i过滤器钩子(Filtrowanie tekstu): Aby dodać tekst po treści artykułu, należy użyć odpowiednich „hooków” (elementów programu, które umożliwiają interakcję z danymi). the_content Ten filtr hook.
Poniżej komentarza umieszczonego na początku głównego pliku dodaj następujące funkcje i „hooki”:
// 定义向文章内容添加问候语的函数
function mfgp_add_greeting_to_content( $content ) {
// 确保只在主循环的单篇文章页面显示
if ( is_single() && in_the_loop() && is_main_query() ) {
$greeting = '<p style="color:#666; font-style:italic;">Dziękujemy, że przeczytałeś/a ten tekst! Życzemy ci wspaniałego dnia!</p>';
$content .= $greeting;
}
return $content;
}
// 将函数挂载到 ‘the_content’ 过滤器钩子上
add_filter( 'the_content', 'mfgp_add_greeting_to_content' ); Po zapisaniu pliku i aktywacji wtyczki otwórz dowolny artykul na stronie internetowej, przesuń się do jego końca – powinienś zobaczyć dodane powitanie. Za pomocą tego prostego przykładu zapoznałeś się z najważniejszymi elementami rozwoju wtyczek: deklaracją wtyczki, pisaniem funkcji realizujących jej działanie oraz…add_filter或add_actionZmontuj funkcję na właściwym „haku” (hook).
Ulepszenie funkcji dodatków: dodano stronę z ustawieniami zarządzania.
Dojrzały plugin zwykle umożliwia użytkownikom konfigurację w tle systemu. Dalej dodamy prostą stronę ustawień dla pluginu do wysyłania powitań, aby administrator mógł dostosować tekst wyświetlany przez ten plugin.
Utwórz element menu administracyjnego.
Najpierw musimy użyć…add_actionHak wywołuje funkcję, która następnie używa… add_options_page Funkcja dodaje podstronę w menu “Ustawienia” w backendzie WordPress.
W głównym pliku dalej dodaj następujący kod:
Polecamy lekturę. Od zera do jednego: Pełny przewodnik i praktyczny kurs rozwoju pluginów dla WordPress。
// 添加设置菜单
function mfgp_add_admin_menu() {
add_options_page(
'问候语插件设置', // 页面标题
'自定义问候语', // 菜单标题
'manage_options', // 权限要求(管理员)
'my-greeting-plugin', // 菜单 Slug
'mfgp_settings_page_html' // 用于输出页面内容的回调函数
);
}
add_action( 'admin_menu', 'mfgp_add_admin_menu' ); Tworzenie strony z ustawieniami oraz logiki związanej z ich zapisywaniem
Teraz musimy definiować powyżej wspomnianą funkcję obsługiwania wywołań (callback function). mfgp_settings_page_html Aby renderować formularz HTML na stronie konfiguracji i obsługiwać zapisanych danych z formularza, WordPress oferuje API do konfiguracji, które ułatwia ten proces. Jednak dla lepszego zrozumienia całego mechanizmu najpierw użyjemy metody podstawowej.
// 定义设置页面的 HTML 结构
function mfgp_settings_page_html() {
// 检查用户权限
if ( !current_user_can( 'manage_options' ) ) {
return;
}
// 处理表单提交(非设置API方式)
if ( isset( $_POST['mfgp_greeting_text'] ) ) {
// 验证 Nonce 确保请求来源安全
check_admin_referer( 'mfgp_save_settings' );
// 清理并保存输入的数据
$greeting_text = sanitize_textarea_field( $_POST['mfgp_greeting_text'] );
update_option( 'mfgp_custom_greeting', $greeting_text );
echo '<div class="notice notice-success is-dismissible"><p>Ustawienia zostały zapisane!</p></div>';
}
// 获取已保存的问候语
$saved_greeting = get_option( 'mfgp_custom_greeting', '感谢您阅读本文!祝你拥有美好的一天!' );
?>
<div class="wrap">
<h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
<form method="post" action="">
<?php wp_nonce_field( 'mfgp_save_settings' ); ?>
<table class="form-table">
<tr>
<th scope="row"><label for="mfgp_greeting_text">Dostosowane powitanie</label></th>
<td>
<textarea name="mfgp_greeting_text" id="mfgp_greeting_text" rows="5" cols="50" class="large-text"><?php echo esc_textarea( $saved_greeting ); ?></textarea>
<p class="description">Ten tekst będzie wyświetlany na końcu każdego artykułu.</p>
</td>
</tr>
</table>
<?php submit_button( '保存更改' ); ?>
<input type="hidden" name="trp-form-language" value="pl"/></form>
</div>
<?php
} Uaktualizowanie funkcji wyświetlania na stronie klienta
Na koniec musimy zmienić wcześniejszą funkcję wyświetlania na stronie klienta (frontend), aby przywoływała dane z bazy danych.get_optionWyczytywa się powitanie z danego źródła, zamiast używać tekstów ustawionych w kodzie programu (tzw. tekstów „hardcoded”).
function mfgp_add_greeting_to_content( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
// 从数据库选项中获取问候语,如果没有则使用默认值
$greeting_text = get_option( 'mfgp_custom_greeting', '感谢您阅读本文!祝你拥有美好的一天!' );
if ( ! empty( $greeting_text ) ) {
$greeting = '<p style="color:#666; font-style:italic;">'`.esc_html($greeting_text)`.'</p>';
$content .= $greeting;
}
}
return $content;
} Teraz administrator może swobodnie zmieniać tekst wyświetlany na stronie “Ustawienia” -> “Dostosowane powitania”, a zmiany będą natychmiast widoczne w interfejsie użytkownika.
Przygotowanie do publikacji wtyczki: internacjonalizacja i wzmacnienie bezpieczeństwa
Przed udostępnieniem dodatku innej osobie lub wprowadzeniem go do oficjalnego katalogu należy wykonać kilka istotnych czynności finalnych, dotyczących międzynarodowej adaptacji (internacjonalizacji) oraz zabezpieczeńia.
Implementacja internacjonalizacji tekstu
Internacjonalizacja (ang. i18n) umożliwia tłumaczenie twojego pluginu na inne języki. Musisz umieścić wszystkie teksty skierowane do użytkowników w specjalnych obiektach lub funkcjach, które zajmują się ich obsługą. Zmodyfikuj teksty w naszym pluginie w taki sposób, aby zostały przygotowane do tłumaczeń.
1. W komentarzach na początku pliku z rozszerzeniem (plugin header comments) już zdefiniowaliśmy… Text Domain。
2. W kodzie należy użyć… () 或 esc_html() Funkcja umożliwia obkładanie stringów. Na przykład:
// 在设置页面函数中
$greeting_text = get_option( 'mfgp_custom_greeting', __( ‘感谢您阅读本文!祝你拥有美好的一天!’, ‘my-first-greeting-plugin’ ) );
echo ‘<h1>’ . esc_html__( ‘问候语插件设置’, ‘my-first-greeting-plugin’ ) . ‘</h1>’// W funkcji wyświetlania na stronie klienta (uwaga: wyświetlenie na stronie klienta zwykle nie wymaga tłumaczenia, chyba że to wymaga tematu lub decyzji użytkownika)
// Jeśli jednak sami powitania muszą być dostępne w kilku językach, może być konieczna bardziej złożona logika. 3. Użyj narzędzi takich jak Poedit do tworzenia. .pot Pliki szablonowe – tłumacze mogą na ich podstawie tworzyć kolejne teksty. .po 和 .mo Dokumenty.
Wzmocnienie zabezpieczeń
Bezpieczeństwo jest niezbyt ważne. Już korzystaliśmy z kilku funkcji bezpieczeństwowych, np.sanitize_textarea_field、esc_html、esc_textarea和wp_nonce_fieldPonadto należy zwrócić uwagę na:
* 权限检查:在管理页面函数开始处使用 current_user_can Zrób sprawdzenie.
* 数据验证与清理:对所有用户输入(如 $_POST, $_GET)进行验证(是否符合预期格式)和清理(移除非法字符)。
* 非竞态条件更新:对于重要的选项,考虑使用 wp_options Jeśli chodzi o bezpieczne tworzenie tabeli, bezpieczniejszym sposobem jest używanie API Settings, które zawiera w sobie mechanizmy zapobiegające konkurencji (tzw. „nonce”) oraz sprawdzania upoważnień użytkowników.
Podsumowanie.
Za pomocą tego przewodnika ukończyliśmy cały proces tworzenia i publikowania funkcjonalnego dodatku do WordPress. Zaczęliśmy od poznania podstaw dodatków, a potem stworzyliśmy plik główny zawierający standardowe informacje nagłówkowe. Następnie, za pomocą prostego mechanizmu powitania, sprawdziliśmy najważniejsze elementy związane z „hakami” (hooks) w WordPress. Później dodaliśmy do dodatku stronę konfiguracji w panelu administracyjnym, co umożliwiło użytkownikom dostosowanie jego funkcji. Na koniec rozpatrziliśmy kluczowe kroki przed publikacją: internacionalizację i zabezpieczenie dodatku. Każdy krok obejmował wykorzystanie standardowych funkcji WordPress oraz najlepszych praktyk. Po opanowaniu tych podstaw możesz spróbować stworzyć bardziej złożone i kreatywne dodatki, które przyczynią się do rozwoju całego ekosystemu WordPress na całym świecie.
FAQ – najczęściej zadawane pytania.
Jaki jest wymagany poziom wiedzy, by rozwijać dodatki do WordPress?
Powinieneś mieć podstawowe znajomości programowania w PHP, znać HTML i CSS, a także mieć pojęcie o podstawowych funkcjach WordPressa (tworzenie artykułów, stron, menu itd.). Znajomość programowania obiektowego (OOP) nie jest konieczna, ale może znacząco ułatwić rozwój większych dodatków (pluginów).
Czemu moje wtyczki nie są wyświetlone w menu w tle po ich aktywacji?
Najczęściej występującym powodem są problemy z uprawnieniami. Sprawdź, jakie uprawnienia masz przy wykonywaniu tej operacji.add_options_pageGdy używa się funkcji podobnej do tej, czy drugi parametr (capability) jest poprawnie ustawiony? ‘manage_options’Ponadto upewnij się, że twoja funkcja została poprawnie zdefiniowana i implementowana.add_action( ‘admin_menu’, ...)Założmy, że element „hook” został poprawnie montowany, a nie wystąpiły żadne błędy gramatyczne, które by uniemożliwiły wykonywanie funkcji. Możesz dodać tę informację na początku kodu, aby była jasna i łatwa do zrozumienia.error_logFunkcje są używane do debugowania.
Jak debugować moje wtyczki dla WordPress?
Najpierw upewnij się, że masz wszystko niezbędne w swoim… wp-config.php W pliku włączony został tryb debugowania WordPress. define( ‘WP_DEBUG’, true ); 和 define( ‘WP_DEBUG_LOG’, true );W ten sposób informacje o błędach zostaną zarejestrowane. /wp-content/debug.log W pliku. Ponadto można używać narzędzi dostępnych w panelu rozwojowym przeglądarza, a konkretnie kart “Konsola” i “Sieć”, do debugowania kodu front-endu. W przypadku złożonych algorytmów logicznych zaleca się skorzystanie z dodatkowych narzędzi lub metod specjalnych.error_log( print_r( $variable, true ) );Wysyłanie wartości zmiennej do logów jest powszechną praktyką.
Jak moja wtyczka będzie kompatybilna z innymi wtyczkami lub tematami?
Aby zapewnić maksymalną kompatybilność, Twój wtyczka powinna: 1) używać unikalnych prefiksów do nazywania wszystkich funkcji, klas, zmiennych i opcji (na przykład użyliśmy „wp”).mfgp_Aby uniknąć konfliktów nazw, należy zachować ostrożność podczas dodawania lub modyfikowania stylów frontendowych lub backendowych. 2) Przed dodaniem zmian w stylach frontendowych lub backendowych należy użyć unikalnych nazw selektorów. 3) Jeśli to możliwe, należy udostępnić haki filtrów.apply_filters4) Unikaj bezpośrednich modyfikacji tabel w bazie danych lub plików core’u 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.
- Czemu WordPress jest wybierany jako preferowana platforma do tworzenia stron internetowych?
- Detaljowa instrukcja konfiguracji sieci wielu witryn w WordPress
- Lekkie tworzenie profesjonalnych stron internetowych: kompletny przewodnik od poznania podstaw WordPress do osiągnięcia mistrzostwa
- WooCommerce: Kompletny przewodnik – jak budować sklep internetowy na WordPress od zera
- Praktyczny przewodnik po optymalizacji SEO w 2026 roku: zasady od poznania podstaw do osiągnięcia mistrzostwa w formie zorganizowanej strategii