Die Stärke von WordPress liegt nicht nur in seinen Kernfunktionen, sondern auch in seiner Fähigkeit, sich durch Plugins unbegrenzt zu erweitern. Wenn Sie eine bestimmte Funktion für Ihre Website benötigen, die durch vorhandene Plugins nicht erfüllt werden kann, wird das Erlernen der Plugin-Entwicklung von großer Bedeutung. Diese Anleitung führt Sie Schritt für Schritt durch die Grundkonzepte und hilft Ihnen dabei, Ihr erstes voll funktionsfähiges WordPress-Plugin zu entwickeln – so erlernen Sie die wesentlichen Fähigkeiten der individuellen Anpassung und Entwicklung.
Plugin-Entwicklungsumgebung und Grundstruktur
Bevor du mit dem Schreiben des Codes beginnst, brauchst du eine geeignete Entwicklungsumgebung sowie eine klare Projektkonstruktion. Dies ermöglicht es dir, effizient zu arbeiten, und sorgt außerdem dafür, dass das Plugin den Standards von WordPress entspricht – was die spätere Wartung und Verbreitung erleichtert.
Aufbau einer lokalen Entwicklungsumgebung
Es wird empfohlen, lokale Server-Software wie XAMPP, MAMP oder Local by Flywheel zur Einrichtung einer WordPress-Umgebung zu verwenden. Dadurch können Sie sicher auf Ihrem eigenen Computer Tests und Debugging-Vorgänge durchführen. Stellen Sie außerdem sicher, dass Ihre Code-Editor (z. B. VS Code, PhpStorm) die PHP-Syntax-Hervorhebung sowie Code-Vorschläge unterstützen – dies verbessert die Entwicklungseffizienz erheblich.
Empfohlene Lektüre Leitfaden für Anfänger in der WordPress-Plugin-Entwicklung: Erstellen Sie Ihre erste Erweiterung von Grund auf。
Verstehen Sie die grundlegende Struktur von Plugins.
Ein sehr einfaches WordPress-Plugin kann aus nur einer Datei bestehen, doch ein gut strukturiertes Plugin umfasst in der Regel mehrere Verzeichnisse und Dateien. Die zentrale Datei ist die Hauptdatei des Plugins, die eine spezifische Plugin-Hauptansage („Plugin Header“) enthalten muss. Diese Anweisung dient dazu, dem WordPress-System mitzuteilen, um welches Plugin es sich handelt.
Die Hauptdatei eines Plugins wird in der Regel nach der Funktion des Plugins benannt, zum Beispiel…my-custom-functionality.phpDer oberste Teil muss die standardmäßigen Plugin-Informationen enthalten.
<?php
/**
* Plugin Name: 我的定制功能模块
* Plugin URI: https://example.com/my-custom-plugin
* Description: 这是一个用于演示的WordPress定制功能插件。
* Version: 1.0.0
* Author: 你的名字
* License: GPL v2 or later
* Text Domain: my-custom-plugin
*/ Diese Anmerkung gibt an, woher die Informationen stammen, die auf der “Plugins”-Seite im WordPress-Backend vom Plugin erkannt und angezeigt werden.Text DomainZur Internationalisierung der Übersetzungen dient dieses Dokument. Alle Funktionscodes sollten anschließend in diesem Dokument oder in anderen Dokumenten geschrieben werden, die aus diesem Dokument eingebunden werden.
Core Development: Action Hooks und Filter
Die Plugin-Architektur von WordPress basiert auf dem “Hook”-System, welches die Grundlage für seine Erweiterbarkeit darstellt. Das Verständnis und die geschickte Anwendung von Hooks ist der Kern des Plugin-Entwicklungsprozesses. Es gibt hauptsächlich zwei Arten von Hooks: Action Hooks und Filter Hooks.
Mit Action-Hooks Funktionen hinzufügen
Action Hooks ermöglichen es Ihnen, Ihre eigenen PHP-Funktionen zu einem bestimmten Zeitpunkt oder wenn ein bestimmtes Ereignis stattfindet einzubetten und auszuführen. Zum Beispiel möchten Sie eine Aktion ausführen, wenn ein Artikel veröffentlicht wird, oder Sie möchten einen benutzerdefinierten Code in den Fußbereich einer Webseite einfügen.
Empfohlene Lektüre Von Null auf Eins: Ein vollständiger Leitfaden für die Entwicklung von WordPress-Plugins und bewährte Praktiken。
Sie können es verwenden.add_action()Die Funktion montiert Ihre benutzerdefinierte Funktion an einen bestimmten Aktionshaken. Das folgende Beispiel zeigt, wie Sie ein benutzerdefiniertes Metabox auf der Artikleditierungsseite im Administrationsbereich hinzufügen können.
// 将函数挂载到‘add_meta_boxes’这个动作钩子
add_action( 'add_meta_boxes', 'mcp_add_custom_meta_box' );
function mcp_add_custom_meta_box() {
add_meta_box(
'mcp_custom_box_id', // 元框的唯一ID
'自定义设置', // 元框标题
'mcp_custom_meta_box_html', // 回调函数,用于输出HTML内容
'post', // 在‘文章’编辑页面显示
'side', // 显示在侧边栏
'high' // 优先级
);
}
// 定义输出元框HTML内容的回调函数
function mcp_custom_meta_box_html( $post ) {
// 获取已保存的值
$value = get_post_meta( $post->ID, '_mcp_custom_field', true );
// 输出一个非安全字段
echo '<label for="mcp_field">自定义字段:</label>';
echo '<input type="text" id="mcp_field" name="mcp_field" value="' . esc_attr( $value ) . '" />';
} Daten mithilfe von Filter-Hooks ändern
Filter-Hooks ermöglichen es Ihnen, beliebige während des Verarbeitungsprozesses von WordPress erzeugte Daten zu ändern. Im Gegensatz zu Action-Hooks müssen Filter-Funktionen einen Wert entgegennehmen und einen (geänderten) Wert zurückgeben. Sie können diese Funktionen dazu nutzen, um beispielsweise Daten zu bearbeiten, bevor sie in die Datenbank geschrieben werden, oder um bestimmte Aktionen zu modifizieren.add_filter()Eine Funktion, die Filter hinzufügt.
Zum Beispiel: Wenn man am Ende des Artikelinhalts etwas ändert, wird automatisch eine Urheberrechtsangabe hinzugefügt.
add_filter( 'the_content', 'mcp_add_copyright_to_content' );
function mcp_add_copyright_to_content( $content ) {
// 仅对单篇文章页面生效
if ( is_single() ) {
$copyright_text = '<p><em>Das Urheberrecht dieses Artikels liegt bei dieser Website. Bei einer Weiterveröffentlichung ist ein Hinweis auf die Quelle erforderlich.</em></p>';
$content .= $copyright_text;
}
// 必须返回修改后的内容
return $content;
} Implementierung der Datenverwaltung für Plugins
Plugins benötigen in der Regel die Möglichkeit, Daten zu speichern, abzurufen und zu aktualisieren. WordPress stellt eine leistungsstarke Option-API sowie eine Artikel-Metadaten-API bereit, um diese Anforderungen sicher zu erfüllen, ohne dass direkt auf die Datenbank zugegriffen werden muss.
Die Einstellungen mithilfe der Option-API speichern.
Für die globalen Einstellungen von Plugins (wie API-Schlüssel, Schaltzustände usw.) sollte die Option-API verwendet werden. Sie bietet die notwendige Funktionalität zur Verwaltung dieser Einstellungen.add_option(), get_option(), update_option()Funktionen wie diese werden verwendet, um Daten, die auf Schlüssel-Wert-Paaren basieren, zu verwalten.
Beispielsweise kann man für ein Plugin eine einfache Schalter-Einstellung erstellen.
Empfohlene Lektüre Die Entwicklung von WordPress-Plugins beherrschen: Erstellen Sie Ihr erstes erweiterbares Funktionsmodul von Grund auf.。
// 在插件激活时设置一个默认选项(通常写在激活钩子函数里)
register_activation_hook( __FILE__, 'mcp_plugin_activate' );
function mcp_plugin_activate() {
if ( false === get_option( 'mcp_feature_enabled' ) ) {
add_option( 'mcp_feature_enabled', 'yes' );
}
}
// 在代码中获取这个选项的值
$is_enabled = get_option( 'mcp_feature_enabled', 'yes' ); // 第二个参数是默认值
if ( $is_enabled === 'yes' ) {
// 执行功能
} Speichern und Laden von Metadaten von Artikeln
Für Daten, die mit bestimmten Artikeln, Seiten oder benutzerdefinierten Artikeltypen verknüpft sind (wie die benutzerdefinierten Felder im obigen Beispiel der Metaboxe), ist die API für Artikelmetadaten (Post Meta) erforderlich. Die Schlüsselfunktionen sind…update_post_meta()undget_post_meta()。
Sie müssen auf bestimmte Ereignisse oder Signale achten bzw. diese überwachen.save_postAction-Hooks werden verwendet, um die von den Benutzern in den Frontend-Metaboxen eingegebenen Daten zu speichern. Bei der Speicherung müssen Sicherheitsüberprüfungen (z. B. Nonce-Prüfungen) sowie Berechtigungsüberprüfungen durchgeführt werden.
add_action( 'save_post', 'mcp_save_custom_field_data' );
function mcp_save_custom_field_data( $post_id ) {
// 检查Nonce字段(应在元框HTML中输出wp_nonce_field)
if ( ! isset( $_POST['mcp_meta_box_nonce'] ) || ! wp_verify_nonce( $_POST['mcp_meta_box_nonce'], 'mcp_save_data' ) ) {
return;
}
// 检查自动保存
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return;
}
// 检查用户权限
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return;
}
// 安全地获取并保存字段数据
if ( isset( $_POST['mcp_field'] ) ) {
$my_data = sanitize_text_field( $_POST['mcp_field'] );
update_post_meta( $post_id, '_mcp_custom_field', $my_data );
}
} Erstellen einer Plugin-Verwaltungseite
Für Plugins mit komplexen Funktionen wird in der Regel eine spezielle Verwaltungsseite benötigt, über die Webadministratoren verschiedene Einstellungen des Plugins vornehmen können. WordPress bietet eine umfangreiche API, um ein einheitliches Erscheinungsbild der Verwaltungsmenüs und -seiten zu gewährleisten.
Hinzufügen des obersten Verwaltungsmenüs
ausnutzenadd_menu_page()Die Funktion ermöglicht es, für Ihr Plugin ein oberes Menüelement in der linken Navigationsleiste im Hintergrund hinzuzufügen. Sie müssen den Seitenbetitel, den Menünamen, die erforderlichen Berechtigungen, einen Menüalias sowie die Callback-Funktion zur Anzeige des Seiteninhalts angeben.
add_action( 'admin_menu', 'mcp_register_admin_menu' );
function mcp_register_admin_menu() {
add_menu_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单名称
'manage_options', // 所需权限(通常为manage_options)
'mcp-plugin-settings', // 菜单别名(slug)
'mcp_render_settings_page', // 渲染页面的回调函数
'dashicons-admin-generic', // 图标(使用Dashicons)
80 // 菜单位置
);
}
// 定义渲染设置页面的函数
function mcp_render_settings_page() {
// 检查用户权限
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
?>
<div class="wrap">
<h1>\n</h1>
<form action="/de/options.php/" method="post" data-trp-original-action="options.php">
<?php
// 输出设置字段、非安全字段等(需要配合settings API使用)
settings_fields( 'mcp_settings_group' );
do_settings_sections( 'mcp-plugin-settings' );
submit_button( '保存设置' );
?>
<input type="hidden" name="trp-form-language" value="de"/></form>
</div>
<?php
} Das Formular wird mithilfe der Einstellungs-API erstellt
Um Formoptionen sicherer und standardisierter zu verarbeiten, wird dringend die Verwendung der WordPress-Settings-API empfohlen. Sie übernimmt automatisch die Überprüfung von Nonces, die Kontrolle von Berechtigungen, die Speicherung von Daten sowie die Anzeige von Fehlermeldungen. Die wichtigsten Schritte sind:register_setting()Registrierungs-Einstellungen, verwendenadd_settings_section()Fügen Sie eine Einstellungsregion hinzu und verwenden Sie sie.add_settings_field()Fügen Sie spezifische Einstellungsfelder hinzu.
Dies stellt sicher, dass Ihre Plugin-Einstellungsseite mit dem Stil von WordPress Core übereinstimmt und die besten Sicherheitspraktiken befolgt.
Zusammenfassungen
Mit dieser Anleitung haben Sie den Kernprozess der WordPress-Plugin-Entwicklung durchlaufen: Von der Einrichtung der Entwicklungsumgebung und dem Verständnis der grundlegenden Strukturen über das tiefe Eindringen in das „Seelenstück“ der WordPress-Erweiterbarkeit – das Hook-System – bis hin zum Erlernen, wie Sie Funktionen mithilfe von Aktionen und Filtern hinzufügen oder ändern können. Anschließend haben Sie gelernt, wie Sie die Plugin-Daten mithilfe der Option-API und der Artikel-Metadaten-API sicher verwalten. Schließlich haben Sie erfahren, wie Sie eine professionelle und sichere Plugin-Verwaltungsseite erstellen.
Die Entwicklung von Plugins ist ein sehr praktischer Prozess – die wahre Meisterschaft erlangt man nur durch eigenes Handeln und das Erstellen von Lösungen. Es wird empfohlen, mit einer einfachen Anforderung zu beginnen, zum Beispiel “Einen Autorenprofil nach jedem Artikel hinzuzufügen”, und die oben genannten Kenntnisse schrittweise anzuwenden. Stellen Sie sich dabei ständig Fragen und suchen Sie nach Lösungen.Offizielles WordPress-Plugin-HandbuchMit Codebeispielen und Referenzen werden Sie in der Lage sein, leistungsstarke, elegant geschriebene, anpassbare Plugins zu entwickeln, die das volle Potenzial von WordPress ausschöpfen.
FAQ Häufig gestellte Fragen
Welche Vorkenntnisse sind für die Entwicklung von WordPress-Plugins erforderlich?
Sie sollten über grundlegende PHP-Programmierkenntnisse verfügen, HTML und CSS verstehen sowie einen ersten Einblick in die grundlegenden Konzepte von WordPress haben (z. B. Artikel, Seiten, Schleifen, Template-Tags). Eine Vertrautheit mit objektorientiertem Programmieren (OOP) ist nicht zwingend erforderlich, aber sie hilft sehr bei der Entwicklung komplexerer Plugins.
Muss die Hauptdatei eines Plugins einen bestimmten Namen haben?
Es gibt keine verbindlichen Anforderungen, aber aus Gründen der Klarheit und Standardisierung wird es üblicherweise empfohlen, Namen zu verwenden, die die Funktionen des Plugins beschreiben.my-gallery-plugin.phpDie einzige Anforderung ist, dass an der Spitze dieser Datei die korrekten Plugin-Hauptkommentare enthalten sein müssen. WordPress erkennt das Plugin anhand dieser Kommentare.
Wie kann ich sicherstellen, dass mein Plugin nicht mit anderen Plugins konfliktiert?
Es ist die beste Praxis, allen Ihren Funktionen, Klassen, Konstanten und Optionen einen eindeutigen Präfix zuzuweisen, um Konflikte zu vermeiden. Verwenden Sie beispielsweise keine…get_data()Anstelle von generischen Funktionsnamen wiemcp_get_data()(Vorausgesetzt, die Abkürzung für Ihr Plugin ist „mcp“.) Ebenso sollten die Optionennamen ähnlich sein.mcp_settings_array。
Nach der Fertigstellung der Entwicklung: Wie kann man das Plugin an andere Personen zur Nutzung weitergeben?
Komprimieren Sie Ihre Plugin-Ordner in eine ZIP-Datei. Die Benutzer können diese ZIP-Datei direkt auf der WordPress-Backend-Seite “Plugins” -> “Plugins installieren” -> “Plugins hochladen” hochladen und installieren. Wenn Sie Ihre Plugins im offiziellen WordPress-Plugin-Verzeichnis veröffentlichen möchten, müssen Sie strengere Vorgaben einhalten.Submitting GuidelinesUnd die Code-Überprüfung wird akzeptiert.
Sollte ich für die Entwicklung des Plugins einen prozessorientierten oder objektorientierten Ansatz verwenden?
Für einfache, kleine Plugins ist die prozessorientierte Vorgehensweise (Verwendung unabhängiger Funktionen) direkter und schneller. Bei mittelgroßen bis großen Plugins mit komplexen Funktionen ermöglicht die objektorientierte Vorgehensweise (Verwendung von Klassen) eine bessere Organisation des Codes, was die Wartbarkeit und Wiederverwendbarkeit verbessert. Beide Methoden werden in der WordPress-Community weit verbreitet angenommen.
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
- Komplettanleitung zur Entwicklung von WordPress-Plugins: Von der Grundlagenkenntnis bis zur Meisterschaft – Erstellen Sie professionelle Erweiterungen
- WordPress-Plugin-Entwicklung von der Grundlage bis zur Meisterschaft: Erstellen Sie Ihr erstes benutzerdefiniertes Plugin
- Vom Nullpunkt zum Erreichen des ersten Erfolgs: Ein umfassender Leitfaden zur schrittweisen Entwicklung deines ersten WordPress-Plugins