WordPress-Plugins von Grund auf lernen: Umfassender Leitfaden und praktische Anleitung

4-Minuten-Lesung
2026-03-18
2026-06-03
2,475
Ich bekomme eine Provision, wenn du über die untenstehenden Links einkaufst – ohne zusätzliche Kosten für dich.

Warum haben Sie sich für die Entwicklung von WordPress-Plugins entschieden?

In der heutigen Website-Ökologie dominiert WordPress aufgrund seiner unvergleichlichen Flexibilität und seiner riesigen Nutzerbasis. Diese Flexibilität ist größtenteils auf sein Pluginsystem zurückzuführen. Durch die Entwicklung eigener Plugins können Entwickler eine Idee in wiederverwendbare Funktionsmodule umsetzen, die Millionen von Websites weltweit nutzen. Dies ermöglicht nicht nur die Lösung spezifischer Geschäftsanforderungen, sondern auch die Verteilung über das offizielle WordPress-Verzeichnis oder über Drittanbietermärkte, wodurch nachhaltiger Wert und Einnahmen generiert werden können.

Im Gegensatz zu den Methoden, die direkt das Thema ändern… functions.php Die Dateien unterscheiden sich, und die Plugins trennen die Funktionslogik von der Darstellung des Themas, um eine nachhaltige Wartung der Website zu gewährleisten. Wenn Sie das Thema ändern, können die von den Plugins bereitgestellten Funktionen nahtlos übertragen werden, während der in das Thema geschriebene Code neu verarbeitet werden muss. Diese modulare Entwicklungsmethode ist die beste Praxis für die Erstellung professioneller und stabiler WordPress-Websites.

Erstellen Sie Ihr erstes Plugin.

Der erste Schritt bei der Entwicklung eines Plugins besteht darin, eine grundlegende Struktur zu erstellen, die den Standards von WordPress entspricht. Hierbei geht es nicht nur darum, eine Datei zu erstellen, sondern auch um die Einrichtung einer wartbaren und erweiterbaren Code-Organisation.

Empfohlene Lektüre Einführung in die Entwicklung von WordPress-Plugins: Erstellen Sie Ihre erste benutzerdefinierte Funktionserweiterung von Grund auf.

Erstellung der Kern-Plugin-Dateien

Jedes WordPress-Plug-in muss eine Hauptdatei haben, die normalerweise nach dem Namen des Plug-ins benannt ist, zum Beispiel my-first-plugin.phpDie Kopfzeilenkommentare dieser Datei sind die “Personalausweise” des Plugins. Sie stellen dem WordPress-System Metainformationen zum Plugin zur Verfügung, wie z. B. Name, Beschreibung, Version, Autor usw. Ohne diese Kopfzeilen kann WordPress Ihr Plugin nicht erkennen und aktivieren.

UltaHost – WordPress-Hosting-Anbieter
30-tägige Geld-zurück-Garantie, unbegrenztes Bandbreiten- und Datenbankvolumen, kostenlose DDoS-Schutzmaßnahmen sowie ein Rabatt von 501 auf 4 Terabyte bei einer Kaufdauer von 3 Jahren.
<?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
 * Domain Path:       /languages
 */

Eine einfache Funktion implementieren

Nachdem wir den Header des Plugins definiert haben, können wir mit dem Hinzufügen von Funktionscode beginnen. Ein klassisches Beispiel für den Einstieg ist das Hinzufügen einer Zeile mit benutzerdefiniertem Text zum Fußbereich der Website. Dazu wird der “Hook”-Mechanismus von WordPress verwendet, genauer gesagt die Verwendung von wp_footer Dieser Aktions-Hook.

// 在 wp_footer 钩子上挂接我们的函数
add_action(‘wp_footer’, ‘my_first_plugin_display_footer_text’);

/**
 * 在网站前台页脚输出自定义文本
 */
function my_first_plugin_display_footer_text() {
    echo ‘<p style="“text-align:" center;”>Diese Website wird von meinem ersten Plugin technisch unterstützt.</p>’;
}

Fügen Sie den obigen Codeblock zu Ihrer Haupt-Plugin-Datei hinzu, speichern Sie ihn und laden Sie ihn anschließend auf den Server hoch. /wp-content/plugins/ Inhaltsverzeichnis. Dann gehen Sie auf die “Plugins”-Seite im WordPress-Dashboard, wo Sie “Mein erstes Plugin” sehen und aktivieren können. Aktualisieren Sie die Website-Frontseite, und der von Ihnen hinzugefügte Text wird am unteren Rand der Seite angezeigt.

Ein tiefes Verständnis der WordPress-Plugin-Architektur

Um leistungsstarke und professionelle Plugins zu entwickeln, ist es notwendig, die von WordPress bereitgestellten Kernprogrammierschnittstellen und Architekturmodelle gründlich zu verstehen. Es geht nicht nur darum, PHP-Funktionen zu schreiben, sondern auch darum, zu lernen, wie man sicher und effizient mit dem WordPress-Kern interagiert.

Hook-Mechanismus: Aktionen und Filter

Das Hook-System von WordPress ist der Grundstein seiner Erweiterbarkeit und wird hauptsächlich in Aktions-Hooks (Action Hooks) und Filter-Hooks (Filter Hooks) unterteilt. Aktions-Hooks ermöglichen es Ihnen, Ihren Code zu einem bestimmten Zeitpunkt “auszuführen”. Beispielsweise können Sie mit Aktions-Hooks Folgendes tun:init Der Hook wird beim Initialisieren von WordPress ausgelöst.wp_enqueue_scripts Haken werden verwendet, um Skripte und Stile sicher hinzuzufügen.

Empfohlene Lektüre Komplettanleitung zum Entwickeln von WordPress-Plugins: Erstellen Sie Ihr erstes funktionales Plugin von Grund auf

Filter-Haken ermöglichen es Ihnen, Daten zu “modifizieren”. Sie können Daten abfangen und ändern, bevor sie verwendet werden (z. B. auf einer Seite angezeigt oder in eine Datenbank eingefügt werden). Beispielsweise können Siethe_content Die Filter ermöglichen es Ihnen, den Inhalt der Artikel zu ändern.

// Ändern Sie den Inhalt des Beitrags mithilfe eines Filters, um einen Absatz am Ende hinzuzufügen
add_filter(‘the_content’, ‘my_first_plugin_modify_content’);

function my_first_plugin_modify_content($content) {
    if (is_single()) { // funktioniert nur auf Seiten mit einzelnen Beiträgen
        $extra_text = ‘<div class="“plugin-note”">Vielen Dank, dass Sie diesen Artikel gelesen haben!</div>’.
        $content . = $extra_text.
    }
    return $content.
}

Plugin-Sicherheit und Datenvalidierung

Die Sicherheit ist ein wichtiger Aspekt bei der Entwicklung von Plugins. Vertrauen Sie niemals Daten, die von Benutzern oder externen Quellen stammen. WordPress bietet eine Reihe von Funktionen, die bei der Validierung, Entschärfung und Bereinigung von Daten helfen.

Bei der Verarbeitung von $_POST- oder $_GET-Daten aus Formularen muss Folgendes verwendet werden: sanitize_text_field(), intval(), wp_kses_post() Warten Sie, bis die Funktionen bereinigt sind. Beim Ausgeben der Daten auf einer HTML-Seite müssen Sie < verwenden. esc_html(), esc_attr(), esc_url() Es ist notwendig, Funktionen wie diese zu entkommen, um Cross-Site-Scripting (XSS)-Angriffe zu verhindern.

hosting.com Shared Hosting
Hohe Leistung mit AMD EPYC-CPUs, NVMe-SSD-Speicher und LiteSpeed, fachkundiger Inhouse-Support rund um die Uhr, erweiterte Sicherheitsmaßnahmen einschließlich SSL, Brute-Force-, Malware- und DDoS-Schutz, Einsparungen von bis zu 73%
// 安全地处理并输出一个来自短代码的属性
function my_first_plugin_safe_shortcode($atts) {
    // 使用 shortcode_atts 设置默认值并合并用户输入
    $atts = shortcode_atts(
        array(
            ‘message’ =&gt; ‘Hello World’,
        ), $atts
    );

// 清理用户输入的 message 属性
    $safe_message = sanitize_text_field($atts[‘message’]);

// 转义后安全输出
    return ‘<div>’\n‘ . esc_html($safe_message) . '</div>’php
add_shortcode(‘safe_greeting’, ‘my_first_plugin_safe_shortcode’);

Ein voll funktionsfähiges Plugin erstellen

Lassen Sie uns dieses Wissen zusammenfassen und ein etwas komplexeres, aber praktisches Plugin erstellen: ein Plugin zur “Schätzung der Lesezeit von Artikeln”. Dieses Plugin berechnet automatisch die geschätzte Lesezeit eines Artikels und zeigt sie unterhalb des Artikeltitels an.

Erstellung einer Plug-in-Klassenstruktur

Für Plugins mit etwas komplexeren Funktionen ist die Verwendung einer Klassenstruktur in objektorientierter Programmierung (OOP) eine bessere Wahl. Dies hilft, den Code zu organisieren, Konflikte bei Funktionsnamen zu vermeiden und die Wartbarkeit zu verbessern.

<?php
/**
 * Plugin Name:       文章阅读时间估算
 */
class Article_Reading_Time {
    /**
     * 构造函数,初始化插件
     */
    public function __construct() {
        // 在文章内容前添加阅读时间
        add_filter(‘the_content’, array($this, ‘add_reading_time_to_content’));
        // 初始化脚本和样式(如果需要)
        add_action(‘wp_enqueue_scripts’, array($this, ‘enqueue_assets’));
    }

/**
     * 计算文章的阅读时间(以分钟计)
     * @param string $content 文章内容
     * @return int 预计阅读分钟数
     */
    private function calculate_reading_time($content) {
        // 去除 HTML 标签,只计算纯文本
        $text = strip_tags($content);
        // 估算中文阅读速度:每分钟约300-500字,这里取400字/分钟
        $word_count = mb_strlen($text, ‘UTF-8’);
        $reading_time = ceil($word_count / 400);
        // 至少1分钟
        return max(1, $reading_time);
    }

/**
     * 在文章内容前添加阅读时间显示
     * @param string $content 原始文章内容
     * @return string 添加阅读时间后的内容
     */
    public function add_reading_time_to_content($content) {
        // 确保只在主循环的单篇文章页面显示
        if (is_single() && in_the_loop() && is_main_query()) {
            $reading_minutes = $this->`calculate_reading_time($content);`  
`$reading_time_html = sprintf(‘`‘<div class="“reading-time”"><strong>Erwartete Lesezeit:</strong>%d Minuten</div>’,
                esc_html($reading_minutes)
            );
            $content = $reading_time_html . $content;
        }
        return $content;
    }

/**
     * 加载插件所需的CSS样式
     */
    public function enqueue_assets() {
        if (is_single()) {
            wp_enqueue_style(
                ‘article-reading-time-style’,
                plugin_dir_url(__FILE__) . ‘assets/css/style.css’,
                array(),
                ‘1.0.0’
            );
        }
    }
}

// 实例化插件类,启动插件
new Article_Reading_Time();

\nHinzufügen einer Seite für Verwaltungseinstellungen

Ein professionelles Plugin benötigt normalerweise eine Einstellungsseite im Backend, die es Benutzern ermöglicht, ihr Verhalten anzupassen. Wir können die “Einstellungs-API” von WordPress nutzen, um Optionenseiten standardisiert zu erstellen.

Empfohlene Lektüre Eine vollständige Anleitung zur Entwicklung von WordPress-Themen: Ein praktisches Tutorial vom Anfänger bis zum Experten.

Zunächst müssen wir in der Plugin-Klasse eine neue Methode hinzufügen, um das Einstellungsmenü und die Felder zu registrieren.

// 在构造函数中添加管理菜单钩子
add_action(‘admin_menu’, array($this, ‘add_admin_menu’));
add_action(‘admin_init’, array($this, ‘register_settings’));

public function add_admin_menu() {
    add_options_page(
        ‘阅读时间设置’,          // 页面标题
        ‘阅读时间估算’,          // 菜单标题
        ‘manage_options’,       // 权限
        ‘reading-time-settings’, // 菜单slug
        array($this, ‘render_settings_page’) // 回调函数
    );
}

public function register_settings() {
    register_setting(‘reading_time_settings_group’, ‘reading_time_words_per_minute’);
    add_settings_section(‘reading_time_main’, ‘主要设置’, null, ‘reading-time-settings’);
    add_settings_field(
        ‘words_per_minute’,
        ‘每分钟阅读字数’,
        array($this, ‘render_words_per_minute_field’),
        ‘reading-time-settings’,
        ‘reading_time_main’
    );
}

public function render_words_per_minute_field() {
    $value = get_option(‘reading_time_words_per_minute’, 400);
    echo ‘<input type="“number”" name="“reading_time_words_per_minute”" value="“’" . esc_attr($value) ‘” />’;
    echo ‘<p class="“description”">Ein Referenzwert (Wörter/Minute) zur Berechnung der Lesezeit.</p>’;
}

public function render_settings_page() {
    ?&gt;
    <div class="“wrap”">
        <h1>Schätzung der Lesezeit für Artikel einstellen</h1>
        <form action="/de/“options.php”/" method="“post”" data-trp-original-action="“options.php”">
            <?php
            settings_fields(‘reading_time_settings_group’);
            do_settings_sections(‘reading-time-settings’);
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="de"/></form>
    </div>
    &lt;?php
}

// Anschließend wird die Methode calculate_reading_time geändert, um die vom Benutzer festgelegten Werte zu verwenden
private function calculate_reading_time($content) {
    $text = strip_tags($content);
    $words_per_minute = get_option(‘reading_time_words_per_minute’, 400);
    $word_count = mb_strlen($text, ‘UTF-8’);
    $reading_time = ceil($word_count / $words_per_minute);
    return max(1, $reading_time);
}

Plugin-Internationalisierung und Vorbereitung auf die Veröffentlichung

Um sicherzustellen, dass Ihr Plugin von Nutzern auf der ganzen Welt verwendet werden kann, ist die Internationalisierung (i18n) ein unverzichtbarer Schritt. Gleichzeitig ist es äußerst wichtig, vor der Veröffentlichung ausgiebige Tests durchzuführen und die Dokumentation zu erstellen.

InterServer Shared Hosting
Shared Hosting $2.50 USD pro Monat, erster Monat $0.1 USD Promo-Code tryinterserver, 461 Cloud-Apps Skripte, ein Klick installieren.

Die Unterstützung für Textübersetzungen implementieren.

WordPress verwendet die GNU-Gettext-Technologie, um Mehrsprachigkeit zu ermöglichen. Sie müssen alle Texte, die direkt in Plugins ausgegeben werden, mit bestimmten Funktionen umgeben. Die am häufigsten verwendeten sind __() Zurückgibt den übersetzten String und _e() Zur direkten Ausgabe des übersetzten Strings.

Zunächst müssen Sie alle hartcodierten Texte im Plugin ändern:

// 在插件头部定义 Text Domain
// Text Domain:       article-reading-time

// 在插件初始化时加载语言文件
add_action(‘init’, array($this, ‘load_textdomain’));

public function load_textdomain() {
    load_plugin_textdomain(
        ‘article-reading-time’,
        false,
        dirname(plugin_basename(__FILE__)) . ‘/languages/’
    );
}

// 修改输出文本的代码,使其可翻译
$reading_time_html = sprintf(
    ‘<div class="“reading-time”"><strong>%s</strong>%d %s</div>’);  
    esc_html__(‘Voraussichtliche Lesezeit:’, ‘article-reading-time’),  
    esc_html($reading_minutes),  
    esc_html(_n(‘Minuten’, ‘Minuten’, $reading_minutes, ‘article-reading-time’))  
);

Anschließend müssen Sie Tools wie Poedit verwenden, um den Quellcode des Plugins zu scannen und zu generieren. .pot Vorlagen-Dateien, anhand derer Übersetzer beispielsweise Folgendes erstellen können: zh_CN.po und .mo Die Übersetzungsdateien und deren Platzierung im Plugin. /languages/ Im Verzeichnis.

Testen und Einreichen in den offiziellen Katalog

Bevor Sie es veröffentlichen, sollten Sie alle Funktionen des Plugins in verschiedenen Umgebungen (mit verschiedenen PHP-Versionen und verschiedenen WordPress-Versionen) testen. Überprüfen Sie, ob es PHP-Warnungen oder -Fehler gibt, und stellen Sie sicher, dass es keine Konflikte mit gängigen Themes und anderen Plugins gibt.

Wenn Sie planen, Ihr Plugin in das offizielle WordPress-Pluginverzeichnis einzureichen, müssen Sie strenge Codestandards und Richtlinien befolgen. Dazu gehört die Verwendung von nicht kollidierenden, beschreibenden Funktions- und Klassennamenpräfixen, die Gewährleistung der Sicherheit des Codes und die Bereitstellung detaillierter Dokumentation. readme.txt Bereiten Sie die Dateien (die dem offiziellen Standard entsprechen müssen) vor und entfernen Sie alle Debugging-Codes.

Bereiten Sie eine klare readme.txt Die Dokumentation ist der Schlüssel zu einer erfolgreichen Überprüfung. Sie sollte Informationen zur Beschreibung des Plugins, Installationsschritte, Screenshots, häufig gestellte Fragen, Update-Protokolle usw. enthalten.

Zusammenfassungen

Die Entwicklung von WordPress-Plugins ist eine leistungsstarke Fähigkeit, um Ideen in verteilbare Produkte umzusetzen. Beginnend mit der Erstellung eines einfachen Einzeldatei-Plugins bis hin zu Hook-Mechanismen, Sicherheitspraktiken, objektorientierter Architektur, Einstellungs-APIs und Internationalisierung bildet dieser Lernpfad eine solide Grundlage für die Erstellung von kommerziellen Plugins. Der Schlüssel liegt im Verständnis der zentralen Interaktionsweise von WordPress – den Hooks – und der konsequenten Einhaltung der Prinzipien sicherer Programmierung und Datenvalidierung. Durch eine modulare, strukturierte Organisation des Codes und eine frühzeitige Planung der Verwaltungsoberfläche und der Übersetzungsunterstützung wird Ihr Plugin professioneller, wartungsfreundlicher und marktfähiger sein. Denken Sie daran, dass ein hervorragendes Plugin nicht nur eine Sammlung von Funktionen ist, sondern auch eine Kombination aus Benutzererfahrung, Codequalität und Ökosystemintegration darstellt.

FAQ Häufig gestellte Fragen

Welche Vorkenntnisse sind für die Entwicklung von WordPress-Plugins erforderlich?

Sie benötigen solide PHP-Programmierkenntnisse, da die Kernlogik des Plugins in PHP geschrieben ist. Darüber hinaus sind Grundkenntnisse in HTML, CSS und JavaScript erforderlich, um die Darstellung und Interaktion im Frontend zu bearbeiten. Eine gute Kenntnis der grundlegenden Konzepte von MySQL-Datenbanken (obwohl WordPress über praktische Klassen für die Datenbankoperationen verfügt) und objektorientierter Programmierung ist ebenfalls sehr hilfreich bei der Entwicklung komplexer Plugins.

Was ist der Unterschied zwischen den functions.php-Dateien von Plugins und Themes?

Fügen Sie den Code zum Thema hinzu. functions.php Plugins sind eine schnelle Möglichkeit, Funktionen zu implementieren, die jedoch eng mit dem aktuellen Theme verknüpft sind. Wenn Sie das Theme wechseln, gehen diese Funktionen verloren. Plugins hingegen sind themenunabhängige Funktionsmodule. Egal, welches Theme verwendet wird, solange das Plugin aktiviert ist, bleiben seine Funktionen erhalten. Dies gewährleistet die Portabilität der Funktionen und die Flexibilität bei der Wartung der Website.

Wie kann ich verhindern, dass die Namen meiner Plugin-Funktionen mit denen anderer Plugins in Konflikt geraten?

Die Verwendung von objektorientierter Programmierung (OOP) und die Einbettung Ihres Codes in eine Klasse ist der beste Weg, um Konflikte bei Funktionsnamen zu vermeiden. Wenn Sie prozedurale Programmierung verwenden, müssen Sie für alle Funktionen, Konstanten und globalen Variablen einen eindeutigen Präfix verwenden. Dieser Präfix sollte einzigartig genug sein, z. B. Ihre Marke oder das Akronym Ihres Plugins enthalten, wie zum Beispiel myplugin_ oder art_rt_

Wie sollte ich das Plugin, an dem ich gerade arbeite, debuggen?

Zunächst müssen Sie sicherstellen, dass in WordPress… wp-config.php Die Debug-Modus in der Datei aktivieren: Setzen Sie define(‘WP_DEBUG’, true); und define(‘WP_DEBUG_LOG’, true);Auf diese Weise werden PHP-Fehler und -Warnungen protokolliert. /wp-content/debug.log Im Dokument. Darüber hinaus können Sie mithilfe der Browser-Entwicklerwerkzeuge Probleme mit der Benutzeroberfläche überprüfen und diese nutzen, um error_log() Die Funktion gibt den Wert der Variable in einem Code zur Fehlerbehebung in eine Protokolldatei aus.

Welche rechtlichen Aspekte müssen bei der Entwicklung kommerzieller Plugins berücksichtigt werden?

Das wichtigste rechtliche Problem ist die Einhaltung der Lizenzvereinbarung von WordPress. Wenn Sie planen, Ihr Plugin im offiziellen WordPress-Verzeichnis zu veröffentlichen, muss es einer Lizenz gemäß GPLv2 oder einer höheren Version unterliegen. Das bedeutet, dass der Code Ihres Plugins Open Source sein muss. Sie können mit Dienstleistungen wie Supportverkäufen, erweiterten Funktionen, Dokumentationen oder gehosteten Versionen Geld verdienen. Außerdem müssen Sie Datenschutzgesetze wie die DSGVO beachten und einhalten, wenn Sie mit Benutzerdaten arbeiten. Es wird empfohlen, die Datenerhebung und -nutzung in der Datenschutzerklärung des Plugins klar zu erläutern.