Dinge, die Sie beim Erstellen eines WordPress-Plugins von Grund auf beachten sollten
Veröffentlicht: 2022-01-02Ein WordPress-Plugin ist eigentlich eine einzelne Datei oder Gruppe von Dateien, die die Funktionalität einer WordPress-Site erweitert oder verbessert.
Jeder neue Entwickler kennt „How to Code?
In dieser Anleitung werden wichtige Schritte beschrieben, die Sie beim Erstellen von WordPress-Plugins von Grund auf beachten sollten.
Bei WordPress-Plugins ist es wichtig, WordPress Hooks zu verstehen, zB Aktionen und Filter. Hooks ermöglichen es den Plugins, zu bestimmten Zeiten innerhalb der WordPress-Funktionen mit definierter Funktionalität zu laufen.
Liste der Aktions-Hooks: https://codex.wordpress.org/Plugin_API/Action_Reference
define( 'WP_DEBUG', true ); --- Die Option WP_DEBUG wurde in WordPress Version 2.3.1 hinzugefügt. --- Standardmäßig wird angenommen, dass es falsch ist. In der Datei wp-config.php wird es jedoch normalerweise auf "true" gesetzt.
–> Fügen Sie unserer neu erstellten Datei im Plugin-Ordner einen Plugin-spezifischen Informationsheader hinzu.
/* Plugin-Name: Testimonial-Beitragstyp Plugin-URI: https://wordpress.org/plugins/testimonial-post-type/ Beschreibung: Erstellen Sie einen Testimonial-Posttyp, es ist Taxonomie & Tags. Version: 1.0 Autor: Elsner Technologies Pvt. GmbH. Autoren-URI: https://www.elsner.com Textdomäne: testimonial-post-type Domänenpfad: /Sprachen */
Verwandte : Elsners kürzlich gestartetes WordPress-Plugin: Posts Slider Shortcode
–> Alle Plugins müssen eindeutige Funktionsnamen, Defines und Klassennamen haben.
Dadurch wird verhindert, dass Ihr Plugin mit anderen Plugins oder Themes in Konflikt steht.
–> Verwenden Sie kein __ (doppelte Unterstriche), wp_ oder _ (einfache Unterstriche) als Präfix.
Diese sind für WordPress selbst reserviert. Sie können sie innerhalb Ihrer Klassen verwenden, jedoch nicht als eigenständige Funktion
–> Bitte sichern Sie Ihr Plugin vor dem direkten Dateizugriff.
if ( ! define( 'ABSPATH' ) ) beenden; // Beenden bei direktem Zugriff
— Sie können den direkten Dateizugriff vermeiden, indem Sie diesen Code an den Anfang aller PHP-Dateien setzen:
–> Bitte fügen Sie Ihren POST-Aufrufen eine Nonce hinzu, um unbefugten Zugriff zu verhindern.
nonce (Nummer wird einmal verwendet)
WordPress-Nonces sind keine Zahlen, sondern ein Hash aus Zahlen und Buchstaben. Sie werden auch nicht nur einmal verwendet, sondern haben eine begrenzte „Lebensdauer“, nach der sie ablaufen.
Normalerweise generieren wir eine URL wie diese, die post_id 174 löscht
http://example.com/wp-admin/post.php?post=123&action=trash
Diese URL ist perfekt, aber nicht sicher. Angenommen, ein Angreifer kennt die ID der Beiträge, dann kann der Angreifer die Beiträge mit dieser URL ohne Ihr Wissen löschen.
Das Hinzufügen einer Nonce verhindert dies. Wenn Sie beispielsweise eine Nonce verwenden, sieht die URL, die WordPress für den Benutzer generiert, so aus:
http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce=b192fc4204
$nonce = wp_create_nonce( 'my-action_trash');— Dies gibt einfach den Nonce-Wert selbst zurück.
— Diesen Wert können Sie in eine URL eingeben wie
action='http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce='.$nonce;
— Überprüfung einer Nonce, die in der URL übergeben wird
wp_verify_nonce( $_REQUEST['_wpnonce'], 'my-action_trash');Verwandte : So senden Sie Ihr Plugin an das WordPress-Plugin-Verzeichnis?

-> Bitte desinfizieren, entkommen und validieren Sie Ihre POST-Anrufe
Desinfizieren: Benutzereingabe reinigen
Es dürfen niemals Rohdaten in die Datenbank eingefügt werden, auch nicht durch eine Update-Funktion oder einen Prepare()-Aufruf.
Die Bereinigung Ihrer POST-Daten, wenn sie für Aktionsaufrufe oder URL-Umleitungen verwendet werden, verringert die Möglichkeit von XSS-Schwachstellen.
sanitize_text_field($_POST['post_name']);
— Die Daten können mit der obigen Funktion bereinigt werden.
— Hinter den Kulissen macht die Funktion die unten genannten Dinge:
Prüft auf ungültiges UTF-8
Wandelt einzelne < Zeichen in Entität um
Entfernt alle Tags
Entfernen Sie Zeilenumbrüche, Tabulatoren und zusätzlichen Leerraum
Strip-Oktette
— sanitize_*() Klasse von Hilfsfunktionen
https://developer.wordpress.org/plugins/security/securing-input/
Validieren : Überprüfung der Benutzereingabe
Zusätzlich zur Desinfektion sollten Sie alle Ihre Anrufe validieren. Wenn ein $_POST-Aufruf nur eine Zahl sein soll, stellen Sie sicher, dass es sich um einen int() handelt, bevor Sie ihn durchgeben. Jedes Mal, wenn Sie Daten zur Datenbank hinzufügen, sollten es die richtigen Daten sein.
intval( $_POST['post'] ); --- if $_POST['post']
einen numerischen Wert hat, wird true zurückgegeben. Wenn nicht, dann falsch.
Flucht : Ausgabe sichern
Flucht bedeutet, die Daten, die Sie bereits haben, zu nehmen und zu sichern, bevor Sie sie für den Endbenutzer rendern.
Escape/Casting bei der Ausgabe beseitigt nur jede Mehrdeutigkeit und trägt zur Klarheit bei.
<h4> <?php echo esc_html( $title ); ?> </h4> --- esc_html()
sollte in Zeiten verwendet werden, in denen das HTML-Element einen Datenabschnitt umschließt, dessen Ausgabe wir haben.
esc_html ( Zeichenfolge $text )Escape für HTML-Blöcke.
esc_html_e ( Zeichenfolge $text )Zeigen Sie übersetzten Text an, der zur sicheren Verwendung in der HTML-Ausgabe mit Escapezeichen versehen wurde.
esc_html__ ( Zeichenfolge $text )Ruft die Übersetzung von $text ab und maskiert sie zur sicheren Verwendung in der HTML-Ausgabe.
<img alt="" src="<?php echo esc_url( $picture_url ); ?>
--- esc_url()sollte für jede URL verwendet werden, einschließlich der URLs in den Attributen 'src' und 'href' eines HTML-Elements.
<?php echo esc_js( $wert ); ?> --- esc_js()
ist für Inline-Javascript vorgesehen.
<ul class="<?php echo esc_attr( $stored_class ); ?>">
--- esc_attr()ist für alles andere verwendbar, das in ein Attribut des HTML-Elements gedruckt wird.
Notiz :-
Bitte überprüfen Sie den untenstehenden Link, um zu verstehen, wo sich die Ordner befinden und wie Sie sie am besten aufrufen können
https://codex.wordpress.org/Determining_Plugin_and_Content_Directories
Speichern Sie Daten nach Möglichkeit in den Tabellen wp_options.
Das abschließende Ziel all dessen ist sicherzustellen, dass niemals ungültige und unsichere Daten verarbeitet oder angezeigt werden. Alles reinigen, überprüfen, entkommen. Vertrauen Sie auch nie darauf, dass die Benutzer immer vernünftige Daten eingeben.
Verwandte: So passen Sie die WordPress-Anmeldeseite an
