Grundlagen von WordPress-Plugins und Entwicklungsumgebungen
Um WordPress-Plugins zu entwickeln, ist es zunächst wichtig zu verstehen, was ein Plugin überhaupt ist. Ein Plugin besteht im Wesentlichen aus einer oder mehreren PHP-Dateien, die mit speziellen Header-Anmerkungen versehen sind, um WordPress mitzuteilen, welche Funktionen es erfüllen soll. Es erweitert oder modifiziert die Kernfunktionen von WordPress mithilfe der umfangreichen APIs, die WordPress bietet – beispielsweise Action-Hooks, Filter oder Datenbank-Funktionen – ohne dass der Kerncode des Systems geändert werden muss.
Um mit der Entwicklung zu beginnen, benötigen Sie eine lokale Entwicklungsumgebung. Diese umfasst in der Regel einen lokalen Server (z. B. XAMPP, MAMP oder Local by Flywheel), PHP (in einer Version, die den Anforderungen von WordPress entspricht), eine MySQL-Datenbank sowie einen Code-Editor (z. B. VS Code oder PhpStorm). Es wird dringend empfohlen, die Entwicklung und das Debuggen in der lokalen Umgebung durchzuführen, um Auswirkungen auf die Online-Website zu vermeiden.
Die grundlegende Dateistruktur eines Plugins
Ein ganz einfaches Plugin kann aus nur einer Datei bestehen. Um den Code jedoch klarer und leichter zu warten zu machen, wird es empfohlen, einer bestimmten Struktur zu folgen. Ein typisches Plugin-Verzeichnis kann folgende Elemente enthalten:your-plugin-name.php…, einerincludesOrdner (für die Speicherung von Kernfunktionsklassen oder -funktionen), eineradminOrdner (für die Speicherung von Code, der mit dem Backend zusammenhängt), einerpublicOrdner (für die Speicherung von Frontend-Code), einerassetsOrdner zur Speicherung von JavaScript-Dateien, CSS-Dateien und Bildern, sowie optionale Sprachpakete und Vorlagenordner.
Empfohlene Lektüre Eine vollständige Anleitung zur Entwicklung von WordPress-Plugins: Von den Grundlagen bis hin zu fortgeschrittenen praktischen Tutorials。
Die Haupt-Plugin-Datei ist der Einstiegspunkt des Plugins, und die Kommentare am Anfang dieser Datei sind von entscheidender Bedeutung. WordPress liest diese Kommentare ab, um die Plugin-Informationen im Administrationsbereich anzuzeigen.
Erstellen Sie Ihr erstes Plugin.
Lassen Sie uns mit einem klassischen “Hello World”-Beispiel beginnen – dies wird Ihnen dabei helfen, sich mit dem grundlegenden Prozess und den Standards der Erstellung von Plugins vertraut zu machen.
Erstellen Sie die Haupt-Plugin-Datei.
Zunächst einmal, im Verzeichnis Ihrer WordPress-Installation:wp-content/pluginsIm Ordner erstellen Sie einen neuen Ordner, zum Beispiel…my-first-pluginIn diesem Ordner erstellen Sie eine PHP-Datei mit dem Namenmy-first-plugin.php。
Öffnen Sie diese Datei und geben Sie den folgenden Code ein. Der Anfangsbereich mit den Plugin-Informationen (Plugin Header) ist erforderlich – er teilt WordPress mit, dass es sich um ein Plugin handelt.
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个学习插件开发的示例插件,它将在文章内容顶部显示“Hello World!”。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
* Domain Path: /languages
*/
// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* 在文章内容前添加“Hello World”
*
* @param string $content 原始文章内容。
* @return string 修改后的文章内容。
*/
function mfp_add_hello_world( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p style="background-color:#f0f0f0; padding:10px;"><strong>Hallo Welt! Das ist mein erstes Plugin.</strong></p>';
return $custom_text . $content;
}
return $content;
}
add_filter( 'the_content', 'mfp_add_hello_world' );
Nachdem du die Datei gespeichert hast, logge dich in das WordPress-Administrationspanel ein und gehe zur Seite “Plugins”. Dort solltest du deinen ersten Plugin in der Liste der Plugins sehen. Aktiviere es, und besuche anschließend einen Artikel auf deiner Website. Du wirst feststellen, dass der Text “Hello World!” an den Anfang des Artikelinhalts hinzugefügt wurde.
Empfohlene Lektüre Ich zeige Ihnen Schritt für Schritt, wie Sie WordPress-Plugins von Grund auf beherrschen.。
Verstehen der Schlüsselelemente im Code
Dieser Code demonstriert ein zentrales Konzept der WordPress-Entwicklung: die Filter. Wir haben eine Funktion definiert.mfp_add_hello_worldEs empfängt den Inhalt der Artikel.$contentAls Parameter und geben das geänderte Ergebnis zurück. Danach verwenden wir es…add_filter()Die Funktion montiert diese benutzerdefinierte Funktion in das Kern-System von WordPress.the_contentDieser Filter hängt an einem bestimmten Hook. WordPress führt die entsprechenden Aktionen aus, sobald dieser Hook aktiviert wird.the_content()In diesem Fall werden alle Funktionen, die an diesen Hook gebunden sind, nacheinander ausgeführt, was es uns ermöglicht, die Ausgabe zu ändern.
Bedingungsprüfungen im Codeis_single() && in_the_loop() && is_main_query()Es dient dazu, sicherzustellen, dass unsere Änderungen nur auf den einzelnen Artikeln in der Hauptabfrage wirken und die Artikelliste-Seite oder andere Bereiche nicht beeinflussen. Dies ist eine wichtige Praxis bei der Entwicklung effizienter, side-effect-freier Plugins.
Core Plugin Development Technologies
Um leistungsstarke, professionelle Plugins zu entwickeln, ist es unerlässlich, einige der Kern-APIs von WordPress zu beherrschen.
Verwendung von Aktionshaken (Action Hooks) und Filterhaken (Filter Hooks)
Hooks sind die Grundlage der WordPress-Plugin-Architektur. Es gibt zwei Arten von Hooks: Actions und Filters. Action-Hooks werden an bestimmten Ausführungspunkten ausgelöst – beispielsweise beim Veröffentlichen eines Artikels oder beim Laden der Administrationsoberfläche – und ermöglichen es Ihnen, Code auszuführen. Filter-Hooks hingegen ermöglichen es Ihnen, Daten (z. B. den Inhalt oder den Titel eines Artikels) zu modifizieren, bevor sie von WordPress verwendet werden.
ausnutzenadd_action()Hier kommt die Aktion zum Mounten. Zum Beispiel ist es eine häufige Anforderung, bei der Aktivierung eines Plugins eine Datenbanktabelle zu erstellen:
function mfp_create_custom_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'my_custom_data';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
data varchar(255) NOT NULL,
created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
register_activation_hook( __FILE__, 'mfp_create_custom_table' );
Hier wurde Folgendes verwendet:register_activation_hookEs handelt sich um eine spezielle Registrierungsfunktion, die dazu dient, die Aktionen zu definieren, die ausgeführt werden sollen, wenn ein Plugin aktiviert wird.
Empfohlene Lektüre Vom Nullpunkt aus: Warum sich für die Entwicklung von WordPress-Plugins entscheiden?。
Erstellung eines Verwaltungsmenüs und einer Einstellungsseite
Es ist ein Zeichen von Professionalität, für Ihre Erweiterung eine Backend-Einstellungsseite bereitzustellen. Die Verwendung der WordPress-Settings-API ermöglicht es, Optionenseiten sicher und standardisiert zu erstellen.
Der folgende Code zeigt, wie man unter dem Hauptmenü “Einstellungen” eine Untermenüseite hinzufügt:
// 在管理后台初始化时添加菜单
add_action( 'admin_menu', 'mfp_add_admin_menu' );
function mfp_add_admin_menu() {
add_options_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 所需权限
'my-plugin-settings', // 菜单slug
'mfp_render_settings_page' // 用于渲染页面的回调函数
);
}
function mfp_render_settings_page() {
?>
<div class="wrap">
<h1>\n</h1>
<form action="/de/options.php/" method="post" data-trp-original-action="options.php">
<?php
settings_fields( 'mfp_settings_group' ); // 输出安全字段
do_settings_sections( 'my-plugin-settings' ); // 输出设置区域
submit_button( '保存设置' );
?>
<input type="hidden" name="trp-form-language" value="de"/></form>
</div>
<?php
}
// 初始化设置
add_action( 'admin_init', 'mfp_settings_init' );
function mfp_settings_init() {
register_setting( 'mfp_settings_group', 'mfp_options' ); // 注册一个设置选项组
add_settings_section(
'mfp_section_basic',
'基本设置',
null,
'my-plugin-settings'
);
add_settings_field(
'mfp_field_text',
'示例文本框',
'mfp_field_text_render',
'my-plugin-settings',
'mfp_section_basic'
);
}
function mfp_field_text_render() {
$options = get_option( 'mfp_options' );
?>
<input type='text' name='mfp_options[text_field]' value='<?php echo esc_attr( $options['text_field'] ?? '' ); ?>'>
<p class="description">Dies ist ein Beispiel für ein Textfeld.</p>
<?php
}
Plugin-Sicherheit, Internationalisierung und Vorbereitung auf die Veröffentlichung
Die entwickelten Plugins müssen vor der Veröffentlichung für die öffentliche Nutzung sicherheitsrelevanten Verbesserungen unterzogen werden, internationalisiert werden und ordnungsgemäß verpackt werden.
Datenvalidierung, Entschlüsselung und Sicherheit
Vertrauen Sie niemals auf Benutzereingaben oder externe Daten. Alle Informationen, die von außen stammen, sollten gründlich überprüft werden, bevor sie verwendet werden.$_GET、$_POST、$_REQUESTDie Daten, die entweder aus einer Datenbank abgerufen oder auf andere Weise erworben werden, müssen vor der Verwendung immer überprüft (Validiert) und entsprechend behandelt (z. B. durch Escape-Maßnahmen) werden.
- Überprüfung: Überprüfen Sie, ob die Daten dem erwarteten Format entsprechen (z. B. ob es sich um eine E-Mail-Adresse, eine Zahl usw. handelt). Verwenden Sie Funktionen wie
is_email()、intval()、sanitize_text_field()。 - Entkommen: Stellen Sie sicher, dass Sonderzeichen bei der Ausgabe von Daten in HTML, JavaScript oder URLs ordnungsgemäß verarbeitet werden, um XSS-Angriffe zu verhindern. Verwenden Sie Funktionen wie
esc_html()、esc_js()、esc_url()、wp_kses_post()。
In SQL-Abfragen muss dies unbedingt verwendet werden.$wpdb->prepare()Die Methoden werden verwendet, um die Parameter vorzubereiten, um SQL-Injection-Angriffe zu verhindern.
Die Internationalisierung des Plugins umsetzen.
Die Internationalisierung (i18n) ermöglicht es, Ihre Erweiterung in andere Sprachen zu übersetzen. Dafür sind zwei Schritte erforderlich: Die Kennzeichnung der zu übersetzenden Zeichenketten sowie das Laden der Textdateien.
Zunächst wurde bereits am Anfang der Haupt-Plugin-Datei alles Notwendige definiert.Text DomainundDomain PathDanach sollte in allen Bereichen des Plugins, in denen Übersetzungen erforderlich sind, die entsprechenden Zeichenketten mit der Übersetzungsfunktion umhüllt werden.__('Hello World', 'my-first-plugin')Um die Übersetzung in PHP anzuzeigen,esc_html_e('Settings', 'my-first-plugin')Zum Entkommen und Zurückgeben.
Während der Initialisierung des Plugins (z. B. bei der Verwendung…)init(Aktion), es ist erforderlich, die Übersetzungsdatei zu laden:
function mfp_load_textdomain() {
load_plugin_textdomain( 'my-first-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action( 'init', 'mfp_load_textdomain' );
Danach kannst du Tools wie Poedit verwenden, um die Übersetzung zu erstellen..potVorlagen-Dateien, die Übersetzer zum Erstellen verwenden können..po/.moSprachdateien.
Endprüfung und Verpackung
Vor der Veröffentlichung führen Sie bitte die folgenden Überprüfungen durch:
1. Der Code entspricht den WordPress-Codierungsstandards.
2. Alle Funktionen wurden gründlich getestet, einschließlich der Aktivierung, Deaktivierung und des Deinstallierens (mit der entsprechenden Benutzeroberfläche).register_uninstall_hook„Datenbereinigung“.)
3. Alle Debugging-Codes sowie temporäre Ausgaben wurden entfernt.
4. Eine detaillierte Beschreibung wurde erstellt.readme.txtDie Datei muss in einem Format erstellt werden, das den offiziellen Anforderungen von WordPress entspricht. Sie wird anschließend auf der Seite des Plugins-Verzeichnisses angezeigt.
5. Stellen Sie sicher, dass die Namen der Plugin-Verzeichnisse sowie der Hauptdateien eindeutig sind, um Konflikte mit anderen Plugins zu vermeiden.
Schließlich komprimieren Sie das gesamte Plugin-Verzeichnis in eine ZIP-Datei. Diese kann dann direkt über das WordPress-Backend hochgeladen und installiert werden oder in den offiziellen WordPress-Plugin-Verzeichnisordner eingefügt werden.
Zusammenfassungen
Die Entwicklung von WordPress-Plugins ist ein Prozess, bei dem Kreativität in funktionale Lösungen umgewandelt wird – und dies basiert auf einem tiefen Verständnis der Kernarchitektur von WordPress, insbesondere der Hook-API. Mit der Erstellung eines einfachen “Hello World”-Plugins beginnt man und lernt schrittweise, wie man Benutzeroberflächen erstellt, Daten sicher verarbeitet, mit Datenbanken interagiert sowie Funktionen für die Internationalisierung implementiert. Dies ist der typische Weg des Lernens für jeden Plugin-Entwickler. Die Einhaltung von Sicherheitsrichtlinien bei der Programmierung sowie die Nutzung standardisierter Schnittstellen wie der Settings-API sind entscheidend, um die Qualität, Kompatibilität und Sicherheit der Plugins zu gewährleisten. Durch kontinuierliches Üben sowie das Studium des Kerncodes und anderer hochwertiger Plugins werden Sie in der Lage sein, professionelle, zuverlässige und beliebte Erweiterungen für WordPress zu entwickeln.
FAQ Häufig gestellte Fragen
Welche Vorkenntnisse sind für die Entwicklung von WordPress-Plugins erforderlich?
Sie sollten über grundlegende PHP-Programmierkenntnisse verfügen sowie HTML, CSS und JavaScript verstehen. Ein gutes Verständnis der grundlegenden Funktionen von WordPress – wie die Verwaltung von Artikeln, Seiten und Menüs – sowie der Kernkonzepte wie Artikeltypen, Kategorien und Metadaten, wird die Entwicklung von Funktionen erheblich erleichtern. Ebenso hilfreich ist ein grundlegender Umgang mit der MySQL-Datenbank.
Wie debugge ich mein WordPress-Plugin?
Zunächst stellen Sie sicher, dass aufwp-config.phpDie Datei wurde geöffnet.WP_DEBUGundWP_DEBUG_LOGAuf diese Weise werden Fehlermeldungen in die Protokolldatei geschrieben und nicht direkt an die Besucher angezeigt. Zweitens kann man…error_log()Die Funktion schreibt benutzerdefinierte Debugging-Informationen in das Protokoll. Für komplexe Logiken ist die Kombination von professionellen Debugging-Tools wie Xdebug mit einer IDE (z. B. PhpStorm) die effizienteste Methode.
Wie kann meine Erweiterung mit Drittanbieterdiensten (z. B. APIs) kommunizieren?
WordPress bietet eine leistungsstarke HTTP-API (z. B.)wp_remote_get()、wp_remote_post()Dieses Tool wird verwendet, um HTTP-Anfragen zu verarbeiten – und es ist effizienter als die eingebauten PHP-Funktionen.file_get_contents()Oder cURL ist sicherer und kompatibler. Wenn Sie diese Funktionen verwenden, vergessen Sie nicht, mögliche Fehler zu behandeln und geeignete Timeout-Werte einzustellen. Für APIs, die häufig aufgerufen werden müssen, sollten Sie in Betracht ziehen, die Verwendung von „Transients“-APIs zur Caching, um die Leistung zu verbessern.
Wie sollten Klassen und Funktionen in Plugins benannt werden, um Konflikte zu vermeiden?
Um Konflikte mit Funktionsnamen oder Klassennamen anderer Plugins oder Themes zu vermeiden, muss ein eindeutiger Präfix verwendet werden. Es wird in der Regel empfohlen, die Abkürzung oder den vollständigen Namen des Plugins als Präfix zu verwenden. Wenn Ihr Plugin zum Beispiel “Super Tool” heißt, könnte der Funktionsname folgendermaßen aussehen:stool_save_data()Klassennamen können genauso wie…Super_Tool_AdminEine weitere, modernere und sicherere Methode besteht im Einsatz von PHP-Namenräumen (Namespaces). Dies setzt voraus, dass Ihre Plugin-Umgebung PHP 5.3 oder eine höhere Version unterstützt.
Was kommt als Nächstes, was kommt als Nächstes?
Erweiterte Lektüre und praktische Kenntnisse
Die folgenden Artikel stehen im Zusammenhang mit dem Thema dieses Artikels und eignen sich für eine vertiefte Lektüre. Oft ist es besser, mit dem Artikel zu beginnen, der Ihrem aktuellen Problem am nächsten kommt, und dann nach und nach die umliegenden Themen zu behandeln.
- WordPress-Plugin-Entwicklungshandbuch: Von Null zu Eins – Erstellen Sie Ihr erstes benutzerdefinierte Plugin
- Wie man ein WordPress-Plugin-Entwickler wird: Ein umfassender Leitfaden von Grund auf
- Die ultimative Anleitung zum Erstellen einer Website: Eine vollständige Analyse des professionellen Entwicklungsprozesses von Null bis Eins.
- Vom Einstieg bis zur Meisterschaft im Webdesign: Ein umfassender Praxisleitfaden und technischer Analyse zur Erstellung professioneller Webseiten
- Komplettanleitung zur Entwicklung von WordPress-Plugins: Von der Grundlagenkenntnis bis zur Meisterschaft – Erstellen Sie professionelle Erweiterungen