Was sind die Unterschiede zwischen WPINC und ABSPATH?

Es ist üblich, dass Plugin-Entwickler ihre Plugins vor direktem Zugriff schützen. Ich sah zwei Möglichkeiten, das zu tun:

if ( ! defined( 'WPINC' ) ) die; 

und

 if ( ! defined( 'ABSPATH' ) ) exit; 

Was sind die Unterschiede zwischen WPINC und ABSPATH? Welcher ist der richtige Weg?

Solutions Collecting From Web of "Was sind die Unterschiede zwischen WPINC und ABSPATH?"

Sie sind wie folgt definiert:

 define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' ); define( 'WPINC', 'wp-includes' ); 

dirname ist eine PHP-function, die den Pfad des übergeordneten Verzeichnisses zurückgibt, und wp-includes ist ziemlich selbsterklärend.

Ich würde sagen, ABSPATH ist besser, weil es eines der ersten Dinge ist, die WP lädt und es sieht auch besser aus 🙂 Aber es gibt keinen richtigen “richtigen Weg”, weil beide funktionieren.

if ( ! defined( 'WPINC' ) ) die; und if ( ! defined( 'ABSPATH' ) ) exit; Fügen Sie eine zusätzliche Sicherheitsebene hinzu, indem Sie direkten Zugriff auf Ihre Plugin-Datei verhindern. ABSPATH ist eine PHP-Konstante, die im core von WordPress definiert wird.

Wenn auf Ihre Plugin-Datei von außerhalb von WordPress WPINC wird, wird die Konstante ABSPATH oder WPINC nicht definiert, sodass der WPINC in-Code beendet wird und nicht autorisierter Zugriff auf Ihren Code verhindert wird.

ABSPATH und WPINC sind im WordPress-core definiert als:

 define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' ); define( 'WPINC', 'wp-includes' ); 

Beide werden für den gleichen Zweck verwendet.

Was sind die Unterschiede zwischen WPINC und ABSPATH?

Sie können sich selbst überprüfen. Schauen Sie sich einfach wp-load.php auf dem WordPress-Spiegel auf GitHub an.

Schon ein kurzer Blick zeigt, dass die aktuell ausgewählte Antwort nicht mehr korrekt ist, wie ABSPATH definiert ist. Und wenn Sie verschiedene Tags auf GitHub vergleichen, sehen Sie, dass sich die ABSPATH Definition im Laufe der Zeit ändert.

Welcher ist der richtige Weg?

Wenn diese für die Sicherheit verwendet werden, würde ich für ABSPATH gehen. ABSPATH nicht nur im WP-Bootstrapper WPINC definiert wird, wird WPINC unter einer Bedingung in derselben Datei definiert, und es ist daher wahrscheinlicher, dass eine zukünftige Regression WPINC .

Auch wenn Sie nicht explizit gefragt werden, haben Sie Beispiele bereitgestellt, die sowohl die als auch exit . Laut devdocs.io , das auf der offiziellen API-Dokumentation devdocs.io , ist die devdocs.io gleichbedeutend mit ” exit . Sie können also eines der beiden auswählen und es wird keinen Unterschied machen.

Sowohl die Argumente ” die als auch ” exit akzeptieren Argumente, sodass Sie diese verwenden können, um nach dem Abbruch einige nützliche Informationen wie ein verschlüsseltes Versions-Tag oder Kontaktinformationen auszugeben oder einen Exit-Code wie 0 oder -1 zur weiteren Verarbeitung zu übergeben.

Bemerkenswert ist auch, dass wp_die eine Sache ist. Nicht zu verwechseln mit den PHP-Einbauten, sondern ergänzt sie für die Ausgabe von HTML zusätzlich zum Klartext und wird derzeit im ganzen WordPress-core großzügig verwendet. Erfahren Sie mehr über wp_die auf WordPress.org.