Die grundlegende Struktur und Funktionsweise von WordPress-Plugins
Um ein WordPress-Plugin zu entwickeln, ist es zunächst notwendig, dessen grundlegende Struktur sowie die Art und Weise zu verstehen, wie es im Lebenszyklus von WordPress funktioniert. Ein Plugin besteht im Wesentlichen aus einer oder mehreren PHP-Dateien, die die zahlreichen APIs (Application Programming Interfaces), die WordPress bietet, nutzen, um die Funktionalitäten einer Website zu erweitern oder zu ändern.
Die Grundlage eines Plugins ist die Header-Information des Plugins, die an der Spitze der Hauptdatei des Plugins platziert wird. Diese Informationen werden in einem spezifischen PHP-Comment-Format geschrieben, um WordPress mit Metadaten wie dem Namen, der Beschreibung, der Version und dem Autor des Plugins zu versorgen. Zum Beispiel: my-first-plugin.php Die Datei könnte mit den folgenden Informationen beginnen:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于学习插件开发的简单示例。
* Version: 1.0.0
* Author: 开发者姓名
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ WordPress interagiert mit Plugins mithilfe des sogenannten “Hook”-Mechanismus. Es gibt zwei Arten von Hooks: Action-Hooks und Filter-Hooks. Action-Hooks ermöglichen es Ihnen, Ihren eigenen Code zu bestimmten Zeitpunkten während der Ausführung von WordPress einzufügen – beispielsweise nach der Veröffentlichung eines Artikels oder beim Laden der Stylesheets im Seitenkopf. Filter-Hooks hingegen ermöglichen es Ihnen, die während der Ausführung von WordPress erzeugten Daten zu ändern, wie zum Beispiel den Inhalt eines Artikels oder die Länge der Zusammenfassung. Das Verständnis und die geschickte Anwendung von Hooks ist der Schlüssel für eine effiziente Plugin-Entwicklung.
Empfohlene Lektüre Tiefgehend und leicht verständlich: Der vollständige Leitfaden, um die WordPress-Plugin-Entwicklung von Grund auf zu beherrschen。
Verstehen der Organisation von Plugin-Dateien
Ein einfaches Plugin kann nur eine Hauptdatei haben. Mit zunehmender Anzahl von Funktionen wird jedoch eine sinnvolle Dateiorganisationstruktur von großer Bedeutung. In der Regel enthält ein vollständig ausgestattetes Plugin-Verzeichnis die Haupt-Plugin-Datei sowie weitere Dateien, die die einzelnen Funktionen unterstützen. my-plugin.php), zur Unterbringung von Funktionen und Klassen verwendet includes Ordner zur Speicherung von Frontend-Ressourcen assets Ordner (enthält CSS, JavaScript, Bilder), zur Verwendung für Übersetzungsdateien languages Ordner sowie Vorlagen für Benutzeroberflächen templates Ordner. Diese modulare Struktur erleichtert die Wartung des Codes sowie die Zusammenarbeit im Team.
Erstellt euer erstes einfaches Plugin.
Lassen Sie uns mit einem praktischen Beispiel beginnen. Wir werden einen Plugin erstellen, das am Ende aller Artikel und Seiteninhalte auf einer Website automatisch einen benutzerdefinierten Urheberrechtsvermerk hinzufügt.
Zuerst müssen Sie sich im Installationsverzeichnis von WordPress befinden. wp-content/plugins Im Verzeichnis erstellen Sie ein neues Verzeichnis mit dem Namen „NeuesVerzeichnis“. my-copyright-noticeDann erstellen Sie innerhalb dieses Ordners eine Haupt-PHP-Datei, zum Beispiel mit dem Namen „main.php“. my-copyright-notice.php。
Funktionalität zur Hinzufügung von Implementierungsinhalten
Wir werden Filter-Hooks verwenden. the_content Um diese Funktion zu implementieren, öffnen Sie die Hauptdatei, fügen Sie zunächst die Informationen für den Plugin-Haupteintrag hinzu und schreiben Sie anschließend die Kernfunktionen.
<?php
/**
* Plugin Name: 自动版权声明
* Description: 在文章和页面内容末尾自动添加版权信息。
* Version: 1.0
* Author: WordPress 学习者
*/
// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* 在内容末尾添加版权声明的函数
*
* @param string $content 原始的文章内容。
* @return string 添加了版权声明后的内容。
*/
function mycn_add_copyright_to_content( $content ) {
// 仅对主循环内的文章和页面生效
if ( is_single() || is_page() ) {
$copyright_text = '<p><em>© Urheberrechtshinweis: Dieser Text gehört dieser Website und darf ohne Genehmigung nicht weiterverbreitet werden.</em></p>';
$content .= $copyright_text;
}
return $content;
}
// 将函数挂载到 ‘the_content’ 过滤器上
add_filter( 'the_content', 'mycn_add_copyright_to_content' ); Nachdem Sie die Datei gespeichert haben, melden Sie sich in Ihrem WordPress-Backend an und gehen Sie auf die Seite “Plugins”. Dort sollten Sie das Plugin “Automatische Urheberrechtsangabe” sehen. Aktivieren Sie dieses Plugin und überprüfen Sie anschließend beliebige Artikel oder Seiten – am unteren Rand des Inhalts wird der von Ihnen definierte Urheberrechtstext angezeigt. Dieses Beispiel ist zwar einfach, zeigt aber den gesamten Prozess vom Erstellen über die Programmierung bis hin zur Aktivierung eines Plugins vollständig auf.
Empfohlene Lektüre WordPress-Plugin-Entwicklung von Grund auf: Prinzipien, Praxis und fortgeschrittene Techniken。
Interaktion mit der Datenbank mithilfe der WordPress-API
Erweiterte Plugins benötigen in der Regel die Speicherung und Abfrage von Daten. WordPress stellt sehr praktische Klassen für die Datenbankverarbeitung zur Verfügung. wpdb Die Option API ermöglicht es Ihnen, ohne direktes Schreiben von SQL-Anweisungen sicher auf die Datenbank zuzugreifen und diese zu verarbeiten.
Für einfache Datenstrukturen in Form von Schlüssel-Wert-Paaren – beispielsweise die Konfigurationseinstellungen von Plugins – wird die Verwendung der Option-API dringend empfohlen. Sie können diese API dazu nutzen, add_option(), get_option(), update_option() und delete_option() Mithilfe von Funktionen wie diesen werden Daten verwaltet. Diese Funktionen übernehmen die automatische Serialisierung der Daten sowie deren Speicherung. wp_options In der Tabelle.
Erstellen Sie eine benutzerdefinierte Datenbanktabelle.
Wenn Sie strukturierte, komplexe Daten speichern müssen (z. B. Bestellungen oder Formular-Eingabedaten), ist es möglicherweise erforderlich, benutzerdefinierte Datenbanktabellen zu erstellen. Dies geschieht in der Regel beim Aktivieren eines Plugins. Dazu müssen Sie eine Funktion schreiben und diese registrieren. register_activation_hook An diesem besonderen Haken.
In der Hauptdatei Ihres Plugins kann Code enthalten sein, der dem folgenden ähnelt:
/**
* 插件激活时创建自定义数据库表
*/
function myplugin_create_custom_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'myplugin_data'; // 获取带前缀的表名,如 wp_myplugin_data
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
user_id int NOT NULL,
data_value text NOT NULL,
created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
// 引入 WordPress 升级所需的文件
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
// 注册激活钩子
register_activation_hook( __FILE__, 'myplugin_create_custom_table' ); dbDelta() Funktionen sind leistungsstarke Werkzeuge von WordPress, um Datenbanktabellen zu erstellen oder zu aktualisieren. Sie vergleichen die vorhandene Tabellenstruktur mit Ihrer SQL-Anweisung und führen nur die notwendigen Änderungen durch. Beachten Sie…dbDelta() Sehr empfindlich gegenüber der Formatierung von SQL-Anweisungen (z. B. Definition von Schlüsseln, Einrückungen).
Erstellung einer Plugin-Verwaltungsoberfläche und Sicherheitspraktiken
Ein professionelles Plugin benötigt in der Regel eine Backend-Konfigurationsseite, über die die Benutzer die Einstellungen ändern können. Sie können die “Settings API” von WordPress verwenden, um diese Seite standardisiert und sicher zu erstellen. Diese API übernimmt die Verarbeitung der Formularvalidierung, die Sicherheitsfelder („Nonce“) sowie die Speicherung der Einstellungen – was den Entwicklungsprozess erheblich vereinfacht.
Empfohlene Lektüre Maßgeschneiderte WordPress-Themen: Eine vollständige Anleitung zum Erstellen eines individuellen Website-Looks von Grund auf.。
Hinzufügen der Seite zur Einstellung von Plugins
Zuerst musst du verwenden… add_action() Die Funktion montiert etwas an einen bestimmten Ort. admin_menu Die Callback-Funktion des Action-Hooks wird verwendet, um ein Menüelement sowie eine Seite hinzuzufügen. Anschließend wird in der Callback-Funktion dieser Seite die Funktion zum Setzen der Einstellungen verwendet, um ein Formular zu erstellen.
Im Folgenden finden Sie ein vereinfachtes Beispiel, das zeigt, wie man eine oberste Menüseite hinzufügt und ein Einstellungsfeld registriert:
/**
* 添加插件设置菜单
*/
function myplugin_add_admin_menu() {
add_menu_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 所需权限
'myplugin-settings', // 菜单 slug
'myplugin_settings_page', // 显示设置页面的回调函数
'dashicons-admin-generic', // 图标
80 // 菜单位置
);
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );
/**
* 初始化插件设置
*/
function myplugin_settings_init() {
// 注册一个新的设置到 “myplugin_settings” 页面
register_setting( ‘myplugin_settings’, ‘myplugin_options’ );
// 在页面中添加一个区域
add_settings_section(
‘myplugin_section’,
‘主要设置’,
null, // 可选的区域描述回调函数
‘myplugin_settings’
);
// 向区域中添加一个字段
add_settings_field(
‘api_key’,
‘API 密钥’,
‘myplugin_api_key_field_callback’, // 渲染字段 HTML 的回调函数
‘myplugin_settings’,
‘myplugin_section’
);
}
add_action( ‘admin_init’, ‘myplugin_settings_init’ );
/**
* 渲染 API 密钥字段
*/
function myplugin_api_key_field_callback() {
$options = get_option( ‘myplugin_options’ );
?>
<input type="‘text’" name="‘myplugin_options[api_key]’" value="‘NO NUMERIC NOISE KEY" 1003’>
<?php
}
/**
* 设置页面的显示内容
*/
function myplugin_settings_page() {
?>
<div class="“wrap”">
<h1>\n</h1>
<form action="/de/“options.php”/" method="“post”" data-trp-original-action="“options.php”">
<?php
settings_fields( ‘myplugin_settings’ ); // 输出安全字段
do_settings_sections( ‘myplugin_settings’ ); // 输出设置区域和字段
submit_button( ‘保存设置’ );
?>
<input type="hidden" name="trp-form-language" value="de"/></form>
</div>
<?php
} Befolgen Sie die Sicherheitsvorschriften von WordPress.
Sicherheit ist von größter Bedeutung bei der Entwicklung von Plugins. Alle von Benutzern eingegebenen Daten sowie die daraus resultierenden Ausgaben müssen entsprechend verarbeitet werden. WordPress stellt eine Reihe von Funktionen zur Verfügung, die Ihnen dabei helfen:
* 转义输出:使用 esc_html(), esc_attr(), esc_url() und wp_kses_post() Funktionen wie diese sorgen dafür, dass die auf der Seite angezeigten Daten sicher sind.
* 验证和清理输入:在处理表单提交的数据前,使用 sanitize_text_field(), intval(), sanitize_email() Funktionen wie diese werden zur Reinigung verwendet.
* Nonce 验证:对于所有涉及状态更改的操作(如表单提交、AJAX 请求),使用 wp_nonce_field(), wp_create_nonce() und wp_verify_nonce() Dazu dient die Verhinderung von Cross-Site Request Forgery (CSRF)-Angriffen.
* 能力检查:使用 current_user_can() Eine Funktion, die überprüft, ob der aktuelle Benutzer die Berechtigung hat, eine bestimmte Aktion auszuführen (z. B.…) ‘edit_posts’, ‘manage_options’)。
Zusammenfassungen
Die Entwicklung von WordPress-Plugins ist ein systematischer Prozess, der mit dem Verständnis der Grundstruktur (Hooks, Header-Informationen) beginnt und sich schrittweise auf die Implementierung von Funktionen, die Verwaltung von Daten, die Erstellung von Benutzeroberflächen sowie die Stärkung der Sicherheit erstreckt. Indem Entwickler mit einem einfachen Plugin wie einer “Urheberrechtsangabe” beginnen, können sie schnell ein intuitives Verständnis für den Arbeitsablauf der Plugin-Entwicklung entwickeln. Anschließend lernen sie, die Option-API zu verwenden… wpdb Die Datenverarbeitung durch Klassen ist ein notwendiger Schritt zur Speicherung komplexer Informationen. Schließlich ist die Erstellung einer benutzerfreundlichen Backend-Oberfläche mithilfe von definierten APIs sowie die strikte Einhaltung der Sicherheitskodierungsstandards von WordPress der Schlüssel dazu, dass ein Plugin professionell, zuverlässig und weit verbreitet eingesetzt wird. Regelmäßige Praxis sowie das Lesen des Quellcodes des Kerns von WordPress und anderer ausgezeichneter Plugins sind der beste Weg, um die eigenen Entwicklungsfähigkeiten zu verbessern.
FAQ Häufig gestellte Fragen
Wie viele Dateien benötigt mindestens ein WordPress-Plugin?
Ein voll funktionsfähiges WordPress-Plugin kann aus nur einer einzigen PHP-Datei bestehen. Solange diese Datei die richtigen Kommentare zur Plugin-Identifizierung enthält und die gewünschten Funktionen umsetzt, erkennt und aktiviert WordPress das Plugin. Bei komplexeren Plugins wird aus Wartungsgründen die Aufteilung in mehrere Dateien und Verzeichnisse empfohlen.
Wie kann man ein Plugin so umgestalten, dass es die Übersetzung in mehreren Sprachen unterstützt?
WordPress nutzt die GNU gettext-Technologie zur Unterstützung der Internationalisierung (i18n). Sie müssen Folgendes tun: Zunächst sollten Sie in der Kopfzeile des Plugins sowie an allen Stellen, an denen Texte übersetzt werden müssen, entsprechende Einträge verwenden. __(‘文本’, ‘your-text-domain’) oder _e(‘文本’, ‘your-text-domain’) Solche Funktionen werden erst verpackt, bevor sie verwendet werden. Anschließend werden mit Tools wie Poedit .pot-Template-Dateien erstellt sowie die entsprechenden .po- und .mo-Dateien für die jeweiligen Sprachen generiert. zh_CN.po). Schließlich, durch load_plugin_textdomain() Die Funktion lädt die Übersetzungsdateien beim Initialisieren des Plugins.
Wie sollten JavaScript- und CSS-Dateien in einem Plugin korrekt geladen werden?
Um Kompatibilität zu gewährleisten und Konflikte zu vermeiden, sollten Ressourcendateien nicht direkt in HTML eingebunden werden. Für Frontend-Ressourcen sollte stattdessen eine andere Methode verwendet werden. wp_enqueue_script() und wp_enqueue_style() Funktionen und deren Einbindung in wp_enqueue_scripts Auf den Aktionshaken. Für die Ressourcen der Administratorenseite im Hintergrund muss dies jedoch erst angebunden („gemountet“) werden. admin_enqueue_scripts Auf den „Haken“ – also auf die entsprechenden Mechanismen zur Verwaltung von Abhängigkeiten. Diese Funktionen ermöglichen es Ihnen, Abhängigkeiten sowie Versionsnummern anzugeben und sicherzustellen, dass dieselben Ressourcen nur einmal geladen werden.
Wie führt man die Debugging-Phase bei der Entwicklung von Plugins durch?
WordPress bietet leistungsstarke Debugging-Tools. Zunächst einmal ermöglichen diese Tools es, Fehler im Code des Websites effektiv zu erkennen und zu beheben. wp-config.php In der Datei wird Folgendes festgelegt: WP_DEBUG Die Konstante ist auf trueDas wird PHP-Fehler, Warnungen und Benachrichtigungen direkt auf der Seite anzeigen. Du kannst diese Funktionen auch gleichzeitig aktivieren. WP_DEBUG_LOG(Führen Sie die Fehlerprotokollierung durch…) wp-content/debug.log (Dokumente) und WP_DEBUG_DISPLAY(Determiniert, ob etwas auf der Seite angezeigt wird.) Darüber hinaus wird… error_log() Es ist ebenfalls eine effektive Methode, Variablen und Abläufe nachzuverfolgen, wenn Funktionen verwendet werden oder Protokolle in benutzerdefinierte Dateien geschrieben werden.
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.
- Wie wählt und passt man ein perfektes WordPress-Theme für sich selbst aus?
- 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
- Vom Nullpunkt zum Erfolg: Ein umfassender Leitfaden und praktische Tipps für das Erstellen professioneller Websites mit WordPress
- Komplettanleitung zur Entwicklung von WordPress-Plugins: Von der Grundlagenkenntnis bis zur Meisterschaft – Erstellen Sie professionelle Erweiterungen