Analyse der essentiellen Funktionen und Methoden

3-Minuten-Lesung
2026-03-12
2026-06-04
1,954
Ich bekomme eine Provision, wenn du über die untenstehenden Links einkaufst – ohne zusätzliche Kosten für dich.

Bei der Entwicklung von Plugins für WordPress hängt der Erfolg oft davon ab, inwieweit die leistungsstarken Funktionen, die das WordPress-Kernsystem bietet, effektiv genutzt werden. In diesem Kapitel werden wir uns auf einige der wichtigsten und am häufigsten genutzten Plugin-APIs konzentrieren, ihre Anwendungsszenarien, Parameter und Methoden genauer untersuchen und Entwicklern so helfen, stabile, effiziente und leicht wartbare Plugins zu erstellen.

Core Actions and Filter Hook Functions

Die Plugin-Architektur von WordPress basiert auf einem “Hook”-System, das Entwicklern ermöglicht, benutzerdefinierte Funktionen zu bestimmten Zeitpunkten während der Ausführung des Kerncodes einzufügen. Das Verständnis und die korrekte Nutzung dieser Hook-Funktionen ist der erste Schritt bei der Entwicklung von Plugins.

Eine benutzerdefinierte Funktion in den Kernprozess von WordPress einbinden

Die Funktionen der Plugins müssen zu geeigneten Zeitpunkten ausgelöst werden, was in der Regel mithilfe des “Actions”-Mechanismus von WordPress erfolgt.add_action Funktionen sind die Brücke, die Plugins mit dem Kernzyklus des Systems verbinden; sie ermöglichen es Entwicklern, benutzerdefinierten Code auszuführen, wenn bestimmte Ereignisse auftreten. remove_action Dient dazu, bereits montierte Aktionen zu entfernen.

Empfohlene Lektüre Einführung in die Entwicklung von WordPress-Plugins: Erstellen Sie Ihr erstes Plugin von Grund auf

Die grundlegende Syntax ist wie folgt:

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.
add_action( string $hook_name, callable $callback, int $priority = 10, int $accepted_args = 1 )

Zum Beispiel kann man nach der Veröffentlichung des Artikelinhalts eine Benachrichtigungsmail senden:

function send_post_notification( $post_id ) {
    // 发送邮件的逻辑
}
add_action( 'publish_post', 'send_post_notification' );

add_action Die Prioritätsparameter bestimmen die Ausführungsreihenfolge mehrerer Callbacks auf derselben Hook-Funktion. Je kleiner die Zahl, desto früher wird der Callback ausgeführt. Dies ist für komplexe Plugins von entscheidender Bedeutung, bei denen die Ausführungsreihenfolge kontrolliert werden muss.

Die Daten, die an andere Funktionen übergeben werden, oder die Ausgabe können geändert werden.

Neben dem Ausführen von Code zu bestimmten Zeitpunkten müssen Entwickler oft die von anderen Funktionen erzeugten Daten ändern. In solchen Fällen werden Filter-Hooks eingesetzt.add_filter Die Funktion dient zum Hinzufügen von Filter-Callback-Funktionen. Sie nimmt die Eingabedaten entgegen und muss die Daten nach der Modifikation zurückgeben.

Zum Beispiel: Die Änderung des letzten Zeichens in allen Artikeltiteln.

Empfohlene Lektüre Erlernen Sie diese WooCommerce-Hooks und -Filter, um die Funktionalität Ihrer E-Commerce-Website anzupassen.

function modify_post_title( $title ) {
    return $title . ' - 我的网站';
}
add_filter( 'the_title', 'modify_post_title' );

Und add_action Ähnlich…add_filter Es werden auch Einstellungen zur Priorität sowie zur Anzahl der Parameter unterstützt. Filter bilden die Grundlage für eine hochgradig anpassbare Implementierung in WordPress.

Datenbankoperationen und Funktionen zur Verwaltung von Optionen

Plugins benötigen in der Regel eine dauerhafte Speicherung von Daten. WordPress bietet eine hierarchische Datenverwaltungs-API, die von einfachen Site-Einstellungen bis hin zu benutzerdefinierten Datenbanktabellenoperationen reicht.

Sichere Speicherung und Abruf von Plugin-Einstellungen

Für Plugins, die die Benutzereinstellungen speichern müssen, müssen die Konfigurationsoptionen in der WordPress-Datenbank abgelegt werden.add_optionget_option und update_option Sie bilden die Grundlage für die Datenverwaltung. Mit diesen Funktionen werden… wp_options Tabellen eignen sich zur Speicherung relativ einfacher Schlüssel-Wert-Datenpaare.

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%

Zunächst kann man… add_option Um einen Anfangswert hinzuzufügen… wp_options Die Funktion fügt Daten nur dann ein, wenn die entsprechende Option nicht vorhanden ist.

add_option( 'my_plugin_api_key', '', '', 'no' ); // ‘no’表示非自动加载

Um den Wert einer Option zu erhalten, wird… verwendet. get_optionEs wird empfohlen, immer Standardwerte bereitzustellen:

$api_key = get_option( 'my_plugin_api_key', '' ); // 第二个参数为默认值

Um die Werte der Optionen zu aktualisieren, verwenden Sie… update_optionFalls die Option nicht existiert, wird sie automatisch erstellt.

Empfohlene Lektüre Das ultimative Handbuch für die Entwicklung von WordPress-Plugins: Von Null bis Eins professionelle Erweiterungen erstellen

update_option( 'my_plugin_api_key', 'new_secret_key_123' );

Für die Speicherung komplexer Daten wie Arrays oder Objekte serialisieren und deserialisieren diese Funktionen die Daten automatisch.

Ausführen einer benutzerdefinierten Datenbankabfrage

Wenn ein Plugin relationale Daten oder Protokolle speichern muss, ist es in der Regel die bessere Wahl, benutzerdefinierte Datenbanktabellen zu erstellen. In diesem Fall ist es notwendig, direkt mit den Abstraktionsklassen der WordPress-Datenbank zu arbeiten. $wpdb Interaktion – sie bietet eine sichere, standardisierte Methode zum Zugriff auf Datenbanken.

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.

Zuerst erstellen Sie in dem Hook für die Aktivierung des Plugins eine Tabelle. Stellen Sie sicher, dass Sie die richtigen Methoden und Konstrukte verwenden. dbDelta Eine Funktion, die es ermöglicht, die Tabellendatenstruktur sicher zu erstellen oder zu aktualisieren. Sie vergleicht die Unterschiede zwischen der aktuellen Tabellendatenstruktur und der gewünschten Zielstruktur und wendet die Änderungen intelligent an.

global $wpdb;
$table_name = $wpdb->prefix . 'my_plugin_orders';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
    id bigint(20) NOT NULL AUTO_INCREMENT,
    customer_email varchar(100) NOT NULL,
    amount decimal(10,2) NOT NULL,
    order_date datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
    PRIMARY KEY (id),
    KEY customer_email (customer_email)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );

Bei der Durchführung von Datenabfragen muss unbedingt… $wpdb->prepare Die Vorbereitung der Anweisungen mithilfe dieser Methode ist der Schlüssel zur Verhinderung von SQL-Injection-Angriffen:

$results = $wpdb->get_results(
    $wpdb->prepare(
        "SELECT * FROM {$wpdb->prefix}my_plugin_orders WHERE order_date > %s AND amount > %f",
        '2026-01-01 00:00:00',
        100.00
    )
);

Content Generation and Output Functions

Die Plugins können nicht nur im Hintergrund ausgeführt werden, sondern noch wichtiger ist, dass sie in der Lage sind, Inhalte für die Besucher zu generieren. WordPress bietet leistungsstarke Funktionen, um HTML sicher und flexibel auszugeben, Shortcodes zu verarbeiten sowie statische Ressourcen zu verwalten.

In Artikeln und Seiten dynamische Inhalte einbetten

Shortcodes ermöglichen es Benutzern, dynamische Inhalte mithilfe einfacher Tags in Artikeln und Seiten einzubetten – dies ist eine entscheidende Funktion, die die Benutzerfreundlichkeit von Plugins verbessert. add_shortcode Mit Funktionen können Sie ganz einfach Ihren eigenen Kurzcode erstellen.

add_shortcode Die Funktion nimmt zwei Parameter entgegen: ein kurzes Code-Tag und eine Verarbeitungsfunktion. Die Verarbeitungsfunktion sollte HTML-Inhalt zurückgeben, anstatt ihn direkt auszugeben – dies entspricht dem Prinzip von WordPress, das besagt, dass zuerst die Inhalte abgerufen (“gecrawled”) und anschließend gerendert („rendered“) werden.

add_shortcode( 'recent_posts', 'my_plugin_render_recent_posts' );
function my_plugin_render_recent_posts( $atts ) {
    // 解析属性,设置默认值
    $attributes = shortcode_atts( array(
        'count' => 5,
        'category' => ''
    ), $atts );

// 根据属性查询文章逻辑...
    $output = '<ul class="recent-posts">';
    // ... 生成列表项
    $output .= '</ul>';
    return $output;
}

Die Benutzer müssen lediglich in der Editiersoftware etwas eingeben. [recent_posts count="3"] Dadurch wird die Liste der neuesten Artikel angezeigt.

Die Variablenwerte sicher in HTML ausgeben.

Wenn ein Plugin Variablen auf der Seite ausgeben muss – beispielsweise Texte, die aus einer Datenbank abgerufen wurden, oder Einstellungen –, kann es diese direkt verwenden. echo Oder die Verknüpfung von Zeichenketten kann ein Risiko für Cross-Site Scripting (XSS) darstellen. WordPress bietet spezielle Entschlüsselungsfunktionen, um die Sicherheit der Ausgabe zu gewährleisten.

Für die Ausgabe innerhalb der Attributewerte von HTML-Tags wird folgende Methode verwendet: esc_attr Funktion:

echo '<input type="text" value="' . esc_attr( get_option( 'site_title' ) ) . '">';

Für die Ausgabe im Inhaltsteil von HTML-Tags wird verwendet: esc_html

\necho '<h1>'`. esc_html($post_title).`'</h1>';

Für HTML-Inhalte, deren Sicherheit bereits bestätigt wurde (z. B. solche, die einer Überprüfung unterzogen wurden…) wp_kses_post (gefiltert), aber es ist notwendig, die vollständige URL auszugeben. Dafür kann man… esc_url

\necho '<a href="/de/' . esc_url( $external_link ) . '/">Link</a>';

Um PHP-Variablen in JavaScript-Codeblöcken auszugeben, müssen Sie verwenden. wp_json_encode Und in Kombination mit… esc_js

<script>
var pluginSettings = <?php echo wp_json_encode( $settings_array ); ?>;
var message = '<?php echo esc_js( $user_message ); ?>';
</script>

Datei- und Medienverarbeitungsfunktionen

Viele Plugins beinhalten Funktionen zum Hochladen von Dateien, zur Bildverarbeitung oder zum Zugriff auf interne Dateien von Themes/Plugins. WordPress verschleiert die komplexen Serverpfade und URL-Logiken und bietet stattdessen eine einfache API an.

Erhalten Sie den absoluten Pfad zu Ressourcen innerhalb eines Plugins oder Themes.

Bei der Entwicklung von Plugins ist es häufig notwendig, auf CSS-, JavaScript- oder Bilddateien aus dem eigenen Verzeichnis zuzugreifen. Die Verwendung von fest eingebetteten, absoluten Pfaden ist jedoch sehr unsicher, da die Website möglicherweise umgezogen werden könnte. WordPress bietet hierfür eine praktische Lösung… plugin_dir_path und plugins_url Eine Funktion, die dynamisch Pfade erzeugt.

plugin_dir_path Geben Sie den Pfad zum Server-Dateisystem des Plugins-Verzeichnisses an; der Pfad sollte mit einem Schlüsselzeichen (/) enden und für die entsprechende Verwendung geeignet sein. includerequire Datei:

$config_path = plugin_dir_path( __FILE__ ) . 'config/config.php';
if ( file_exists( $config_path ) ) {
    require_once $config_path;
}

und plugins_url Dient dazu, URLs zu generieren, die über den Browser zugänglich sind, und eignet sich für die Verwendung in …

Analyse der essentiellen Funktionen und Methoden – LikaCloud

Ressourcen, die in „“ zitiert werden:

$css_url = plugins_url( 'assets/css/admin-style.css', __FILE__ );
wp_enqueue_style( 'my-admin-style', $css_url );

Für die Themenentwickler ist die entsprechende Funktion… get_template_directory_uri und get_stylesheet_directory_uri

Bearbeiten von von Benutzern hochgeladenen Mediendateien

Falls das Plugin es den Benutzern erlaubt, Dateien hochzuladen, dürfen diese auf keinen Fall direkt verwendet werden. $_FILES Global Arrays move_uploaded_file Funktionen: Die Medienverarbeitungsfunktionen von WordPress wp_handle_upload Es wird eine vollständige Integration von Sicherheitsüberprüfungen und Dateimanagement- Funktionen bereitgestellt.

Die Funktion kümmert sich automatisch um die Überprüfung der Dateitypen, das Umbenennen der Dateien (um Verdeckungen zu vermeiden), die Fehlerbehandlung sowie um das Verschieben der Dateien in die Verzeichnisstruktur der WordPress-Mediathek.

$uploadedfile = $_FILES['my_plugin_upload'];
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );

if ( $movefile && ! isset( $movefile['error'] ) ) {
    // 文件上传成功
    $file_url = $movefile['url'];
    $file_path = $movefile['file'];
    // 可以将 $file_url 存入数据库
} else {
    // 上传失败,输出错误信息
    echo $movefile['error'];
}

Um die hochgeladenen Dateien weiter in die WordPress-Mediathek zu integrieren, kann man auch folgende Methoden verwenden: wp_insert_attachment Die Funktion erstellt Beiträge mit Anhängen, wodurch die integrierten Bildbearbeitungsfunktionen von WordPress genutzt werden können (z. B. das Erstellen von Vorschaubildern).

Zusammenfassungen

Das Beherrschen der Kernfunktionen und -methoden von WordPress ist die Grundlage für eine effiziente und sichere Entwicklung von Plugins und Themes. Beginnen wir mit dem Hook-System…add_action, add_filterModularisierung umsetzen – bis hin zu den Operationen mit der Datenbank$wpdb, get_optionSorgen Sie dafür, dass die Daten dauerhaft gespeichert werden, und führen Sie anschließend die Ausgabe des Inhalts durch.add_shortcode, esc_htmlSicherheit und ordnungsgemäße Behandlungwp_handle_uploadJede Gruppe von Funktionen bietet für spezifische Szenarien bewährte und ausgereifte Lösungen. Entwickler sollten die Parameter, Rückgabewerte sowie die besten Praktiken dieser Funktionen gründlich verstehen, um unnötige Duplikationen von Code zu vermeiden und Sicherheitslücken zu verhindern. Auf diese Weise können sie leistungsstarke und zuverlässige Erweiterungen für WordPress erstellen.

FAQ Häufig gestellte Fragen

Was ist der grundlegende Unterschied zwischen `add_action` und `add_filter`?

Der wesentliche Unterschied zwischen den beiden liegt in ihrer Verwendung sowie dem erwarteten Verhalten der Rückruffunktionen („Callback Functions“).add_action Dient dazu, eine bestimmte Aktion auszuführen, wenn ein bestimmtes Ereignis eintritt. Die zugehörige Callback-Funktion gibt in der Regel keinen Wert zurück, sondern führt lediglich eine bestimmte Logik aus – beispielsweise die Sendung einer E-Mail oder das Protokollieren von Ereignissen. add_filter Sie dienen dazu, “eine bestimmte Datenveränderung vorzunehmen”. Die zugehörige Callback-Funktion muss einen Eingabewert entgegennehmen und einen geänderten Wert zurückgeben. Aus technischer Sicht sind sie im Wesentlichen identisch; jedoch sorgt die semantische Unterscheidung für bessere Lesbarkeit des Codes.

Warum muss bei der Verwendung der $wpdb-Klasse unbedingt die prepare-Methode verwendet werden?

$wpdb->prepare Methoden sind die entscheidende Verteidigungslinie gegen SQL-Injection-Angriffe. Sie nehmen Variablen über Platzhalter entgegen (%s für Zeichenketten, %d für Ganzzahlen, %f für Fließkommazahlen) und stellen sicher, dass diese Variablen vor dem Einfügen in SQL-Anweisungen korrekt entschlossen und formatiert werden. Selbst wenn Sie sicher sind, dass die Quelle der Variablen sicher ist (z. B. aus einer zuverlässigen Datenbank oder einem vertrauenswürdigen System)... get_option(…), verwenden Sie prepare Es handelt sich auch um eine gute Gewohnheit, der man unbedingt folgen sollte – sie sorgt dafür, dass der Code auch in Zukunft bei Änderungen oder komplexen Situationen weiterhin stabil bleibt.

Können die Funktionen `esc_html` und `esc_attr` gegenseitig ersetzt werden?

Obwohl der Austausch in einigen einfachen Fällen nicht sofort zu Fehlern führen wird, wird dies dringend nicht empfohlen. Die beiden Funktionen sind für unterschiedliche HTML-Kontexte optimiert.esc_html Dient zum Ausgeben von Inhalten, die sich innerhalb von HTML-Tags befinden – dabei werden diese Inhalte entsprechend formatiert. <>&"' Zeichen wie „“, „&“ und „?“ werden in HTML in sogenannte HTML-Entitäten umgewandelt. esc_attr Es dient speziell dazu, Werte in HTML-Tag-Attributen zu entschärfen (zu „escape“) und berücksichtigt dabei auch den Fall, dass die Attributwerte in Anführungszeichen eingeschlossen sein könnten. Die Verwendung der richtigen Funktion stellt sicher, dass die Entschärfung unter allen möglichen Umständen sicher erfolgt.

Was bedeutet die Konstante FILE in `plugin_dir_path(FILE)`?

FILE Es handelt sich um eine PHP-Magische Konstante, die den vollständigen Pfad sowie den Namen der aktuellen ausführbaren Datei im Dateisystem angibt. Diese Konstante sollte in der Hauptdatei des Plugins verwendet werden. plugin_dir_path(FILE)Es ist möglich, den absoluten Pfad zu diesem Plugin-Verzeichnis dynamisch und genau zu ermitteln – unabhängig davon, an welcher Stelle das Plugin installiert wurde. Dies ist weitaus zuverlässiger als die Verwendung von fest eingebetteten („harten“) Pfaden und sorgt dafür, dass das Plugin in verschiedenen Serverumgebungen portabel bleibt. In der Themenentwicklung werden ähnliche Konstanten häufig genutzt. DIR oder Funktion get_template_directory() Sie spielen die gleiche Rolle.