Przewodnik po rozwoju pluginów dla WordPressa: jak stworzyć swoje pierwsze rozszerzenie funkcjonalne od zera

2 minuty czytania
2026-03-12
2026-06-04
2,091
Zarabiam prowizję, gdy robisz zakupy poprzez poniższe linki, bez żadnych dodatkowych kosztów dla Ciebie.

Przygotowanie: Zrozumienie podstaw pluginów w WordPressie

Przed rozpoczęciem pisania kodu istotne jest ugruntowanie się w teorii. Plugin WordPress to w istocie zbiór jednego lub kilku plików PHP, które działają w ramach platformy WordPress.Hook(钩子)System umożliwia rozszerzanie lub modyfikację podstawowych funkcji WordPress. Plugini mogą być bardzo proste – składają się tylko z kilku linii kódu – aż po zaawansowane aplikacje, które obejmują całą platformę administracyjną. Wszystkie pluginy są przechowywane w specjalnym miejscu w systemie WordPress./wp-content/plugins/W katalogu każdy plugin posiada swoją własną folderę.

Środowisko rozwoju to twoje stanowisko pracy. Potrzebujesz lokalnego serwera, np. XAMPP, MAMP lub Local by Flywheel, oraz zainstalowanego WordPressa. Zdecydowanie zaleca się…wp-config.phpUwolniono dostęp do pliku.WP_DEBUGModele pomogą ci szybko lokalizować błędy podczas rozwoju. Ponadto niezbędne są wygodne narzędzia do edycji kodu (np. VS Code, PhpStorm) oraz współczesny browser wyposażony w narzędzia dla programistów.

Stworzenie pierwszego pluginu: Podstawa struktury i aktywacja

Zacznijmy od stworzenia najprostszego pluginu, który ma za zadanie dodawanie linii z informacjami o autorskich prawach na dole każdej strony witryny. Ten proces pomoże ci zrozumieć podstawowe elementy składające się na pluginie.

Polecamy lekturę. Przewodnik po rozwoju pluginów dla WordPressa: jak stworzyć swoje pierwsze rozszerzenie funkcjonalne od zera

Najpierw…/wp-content/plugins/Utworz nowy folder w katalogu i nazwij go…my-first-pluginW tym folderze należy stworzyć plik z głównym pluginem, który zwykle ma taką samą nazwę jak folder.my-first-plugin.phpKażdy plugin musi zawierać standardowe komentarze umieszczone na początku pliku, które służą do identyfikacji informacji o pluginie. To jedyny sposób, jak WordPress może rozpoznać te informacje.

UltaHost – hostingu dla stron WordPress
Gwarancja zwrotu pieniędzy w ciągu 30 dni, nieograniczony przepustowość sieci i dostęp do bazy danych, bezpłatna ochrona przed atakami typu DDoS. Promocja: 50% przy zakupie na 3 lata.
<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于学习WordPress插件开发的入门插件,将在页面底部添加版权信息。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

Po zapisaniu pliku loguj się do panelu administracyjnego WordPress, wejdź na stronę “Dodatki” (Plugins) i ujawni się w liście dodatek o nazwie “Moje pierwsze dodatko” (My First Plugin). Kliknij na “Aktywuj” (Enable), a twój dodatek zostanie uruchomiony. Choć na początku nie będzie wykonywać żadnych działań.

Rozwijanie kluczowej funkcji: dodawanie treści za pomocą „haków” (hooków).

Możliwości WordPress polegają na tym, że…Hook(钩子)Systemy są podzielone na…Action(动作)Filter(过滤器)Dwa typy. Hooki akcyjne umożliwiają wstawienie własnego kodu w określonych momencach czasowych (np. po naładowaniu strony lub w momencie opublikowania artykułu), aby wykonać określone funkcje. Hooki filtracyjne z kolei pozwalają modyfikować dane przekazywane w ramach procesu (np. treść artykułu lub jego nagłówek).

Aby dodać tekst do nagłówka strony, musimy użyć…wp_footerTen „hook” do działań – dodajemy następujący kod do pliku z głównym pluginem:

// 这是一个安全措施,防止直接访问PHP文件
if ( ! defined( 'ABSPATH' ) ) {
    exit; // 如果ABSPATH未定义,则退出
}

/**
 * 在网站页脚输出自定义HTML内容
 */
function myfp_add_footer_text() {
    echo '<div style="text-align: center; padding: 20px; border-top: 1px solid #eee; margin-top: 40px;">'echo '<p>© '. date('Y')'. Moja strona internetowa. Wszkie prawa zastrzeżone. Ten tekst został stworzony przez…<strong>Moje pierwsze dodatkowe narzędzie (plugin).</strong>Generuj.</p>'echo '</div>';
}
// 将我们的函数挂载到 `wp_footer` 动作钩子上
add_action( 'wp_footer', 'myfp_add_footer_text' );

W tym kodzie najpierw definiujemy funkcję.myfp_add_footer_text()Jego funkcja polega na wygenerowaniu segmentu kodu HTML. Następnie go używamy…add_action()Funkcja “montuje” tę własną funkcję na odpowiednim miejscu w systemie.wp_footerNa tym haczu. To oznacza, że co raz, gdy WordPress wykona dane działanie…wp_footerGdy mowa o lokalizacji (zazwyczaj w kontekście tematu…)footer.phpGdy zostanie otwarty plik, automatycznie zostanie wywołana nasza funkcja, co doprowadzi do wyświetlenia informacji o prawach autorskich, które określiliśmy, w dolnej części strony.

Polecamy lekturę. Od zera: kompletny przewodnik po tworzeniu wtyczek do WordPressa oraz dzieleniu się najlepszymi praktykami.

Wysokiej jakości funkcje: tworzenie stron zarządzania oraz skrótów kodu

W pełni funkcjonalny plugin często wymaga interakcji z administratorem. Dalej dodamy do pluginu prostą stronę konfiguracji oraz stworzymy krótki kod.

Dodaj stronę ustawień do menu zarządzania.

Będziemy używać…add_menu_page()Funkcja dodaje nowy element do menu po lewej stronie panelu administracyjnego w WordPress. Zmodyfikuj plik głównego pluginu i dodaj następujący kod:

/**
 * 注册插件管理菜单
 */
function myfp_add_admin_menu() {
    add_menu_page(
        '我的第一个插件设置', // 页面标题
        '我的插件',           // 菜单标题
        'manage_options',     // 所需权限
        'myfp-settings',      // 菜单slug
        'myfp_settings_page', // 显示页面内容的回调函数
        'dashicons-admin-plugins', // 图标(使用Dashicon)
        30                    // 菜单位置
    );
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );

/**
 * 设置页面的HTML内容
 */
function myfp_settings_page() {
    // 检查用户权限
    if ( !current_user_can( 'manage_options' ) ) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
        <p>Witaj na stronie ustawień “Mojego pierwszego pluginu”. To przykład prostego interfejsu do zarządzania.</p>
        <form action="/pl/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 未来可以在这里添加设置字段
            ?>
            <p>Dodatkowe zaawansowane funkcje (np. zapisy ustawień) zostaną przedstawione w kolejnych tutorialach.</p>
        <input type="hidden" name="trp-form-language" value="pl"/></form>
    </div>
    &lt;?php
}

Po zapisaniu i aktualizacji strony w tle pojawi się nowy element menu “Moje dodatki”. Kliknijcie na niego wejdziesz na właśnie stworzoną, pustą stronę z ustawieniami.

hosting.com Hosting współdzielony
Wysoka wydajność dzięki procesorom AMD EPYC, pamięci masowej NVMe SSD i LiteSpeed, wewnętrzne wsparcie ekspertów 24/7, zaawansowane środki bezpieczeństwa, w tym SSL, brute force, ochrona przed złośliwym oprogramowaniem i DDoS, oszczędność do 73%

Stworz i zarejestruj krótki kod.

Krótkie kody umożliwiają użytkownikom wykonywanie prostych działań za pomocą zaledwie kilku znaków.[shortcode]Tagi są używane do wstawiania dynamicznego zawartości w artykułach lub na stronach internetowych. Utworzymy krótki kod, który wyświetli aktualną godzinę na serwerze.

/**
 * 短代码处理函数
 * @param array $atts 短代码属性
 * @param string $content 短代码包裹的内容
 * @return string 返回要替换的HTML
 */
function myfp_current_time_shortcode( $atts = [], $content = null ) {
    // 设置默认属性并合并用户传入的属性
    $atts = shortcode_atts(
        array(
            'format' =&gt; 'Y-m-d H:i:s',
        ),
        $atts,
        'current_time'
    );

// 根据format属性格式化当前时间
    $current_time = date( $atts['format'] );

// 返回输出内容
    return '<div class="myfp-time"><strong>Obecna godzina:</strong> '`.esc_html($current_time).`'</div>'// Rejestracja skróconego kodu [current_time]
add_shortcode( 'current_time', 'myfp_current_time_shortcode' );

Teraz możesz wpisać to w dowolnym artykule, na jakiejś stronie lub w polu tekstowym jakiegoś narzędzia.[current_time]Aby wyświetlić czas w standardowym formacie, albo użyć innej opcji…[current_time format="F j, Y"]Aby wyświetlić czas w ustawionym przez użytkownika formacie, WordPress automatycznie wywoła naszą funkcję.myfp_current_time_shortcode()Funkcja jest przeznaczona do obsługi tego krótkiego kodu oraz jego zastępczenia.

Podsumowanie.

Zgodnie z tym poradnikiem udało ci się wykonać kluczowe kroki przy tworzeniu pełnowartościowego plugina do WordPressa od zera. Poznałeś podstawową strukturę pluginu, znaczenie komentarzy umieszczonego w jego nagłówku („header”) oraz zastosowałeś kluczową technologię rozwoju w WordPressie – system hooków. Udało ci się skutecznie…add_action()Zdodałem treść na frontend stronie internetowej, używając…add_menu_page()Została stworzona interfejsa dla panelu administracyjnego, a następnie zaczęto ją używać.add_shortcode()Zarejestrowano krótkie kody, które można używać w edytorach treści.

Polecamy lekturę. Przewodnik po rozpoczęciu pracy przy tworzeniu pluginów dla WordPressa

To jest tylko początek drogi w świecie rozwoju pluginów. Od tej pozycji możesz eksplorować bardziej złożone obszary, np. tworzenie tabel w bazach danych do przechowywania danych, używanie różnych narzędzi i technik programowania itd.add_settings_section()add_settings_field()Stwórz prawdziwe strony z listą opcji, obsługuj wysyłanie formularzy, dodaj interakcje typu AJAX, przygotuj własne typy artykułów i kategorie, a także postępuj zgodnie z standardami kodowania i zasadami bezpieczeństwa WordPress, aby opublikować swój plugin. Dzięki dalszej praktyce i eksploracji będziesz w stanie stworzyć potężny i profesjonalny plugin dla WordPress.

FAQ – najczęściej zadawane pytania.

Ile plików musi zawierać dodatek (plugin)?

Możliwe, że plugin składa się wyłącznie z jednego głównego pliku PHP. To wystarczy w przypadku prostych pluginów. Gdy funkcje pluginu stają się bardziej złożone, zaleca się rozdzielić różne moduły funkcjonalne na osobne pliki (np. pliki z kodem CSS, JavaScript, definicjami klas itd.) i zorganizować ich ładowanie za pomocą głównego pliku, aby kod był bardziej czytelny i łatwiejszy w utrzymaniu.

Hosting współdzielony InterServer
Hosting współdzielony $2.50 USD miesięcznie, pierwszy miesiąc $0.1 USD kod promocyjny tryinterserver, 461 skryptów aplikacji w chmurze, instalacja jednym kliknięciem.

Dlaczego mój plugin nie pojawia się na liście w tle (w obszarze zarządzania aplikacją)?

Zwykle to wynika z niewłaściwego formatowania komentarzy w nagłówku pliku rozszerzenia lub błędnego adresu pliku. Upewnij się, że główny plik PHP rozszerzenia znajduje się w bezpośrednim położeniu./wp-content/plugins/your-plugin-folder/Znajduje się w katalogu, a blok komentarzy na początku pliku ma właściwy format – szczególnie…Plugin Name:Ta linia jest konieczna. Po sprawdzeniu, że wszystko jest w porządku, wystarczy odnowić stronę z pluginem.

W jaki sposób różnią się aktywnie działające „hooki” (ang. action hooks) od filtrujących „hooków” (ang. filter hooks)?

Hooki akcyjne są używane do wykonywania określonego fragmentu kodu w określonym momencie; nie wymagają żadnej wartości powrotnej i są przeznaczone głównie do aktywowania dodatkowych funkcji, np. dodawania elementów HTML lub wysyłania wiadomości e-mail. Hooki filtracyjne są używane do modyfikacji danych; muszą zwrócić jakąś wartość (zwykle zmienioną wartość wejściową) i są przeznaczone głównie do interwencji przed wyświetleniem treści, np. do zmiany nagłówka artykułu lub dodawania linków do treści.

Jak bezpiecznie usunąć dodane „hooki” (elementy interfejsu)?

Możesz użyćremove_action()remove_filter()Funkcja służy do usunięcia wcześniej dodanych „haków” (hooków). Jednak należy upewnić się, że operacja usunięcia nastąpi po oryginalnej operacji dodawania, a parametr priorytetu musi odpowiadać wartości użytej przy dodawaniu.add_action()add_filter()Priorytety w tym przypadku są identyczne. Zwykle zaleca się wykonywać operację usuwania, gdy hooki w pluginie są wyłączone lub w określonych warunkach.