Während für die richtige Form Einreichung Handhabung in Plugins für Benutzer (Frontend) auf der Suche Ich habe auf diesen Artikel gestolpert Umgang mit POST die Wordpress - Way Requests , die verwendet werden ermutigt admin-post.php
zu diesem Zweck. Wenn wir uns den Header ansehen, finden wir eine Art Bestätigung:
/**
* WordPress Generic Request (POST/GET) Handler
*
* Intended for form submission handling in themes and plugins.
*
* @package WordPress
* @subpackage Administration
*/
Mein Hauptanliegen ist, dass diese Methode aus dem Administrator-Teil des WP-Codes stammt und ihre Verwendung in Nicht-Administrator-Aufgaben einige Unklarheiten hervorruft.
Kann jemand (insbesondere WP-Autoren) bestätigen, dass diese Ansatzabsicht wirklich ganzheitlich oder nur für Administratoren ist, wie ich denke?
plugin-development
admin
forms
Krzysztof Przygoda
quelle
quelle
Antworten:
admin-post.php
ist wie ein Controller eines armen Mannes für die Bearbeitung von Anfragen.Dies ist in dem Sinne nützlich, dass Sie Ihre Anfrage nicht an einem alternativen Hook wie z. B.
init
bearbeiten müssen, um festzustellen, ob auf den Superglobalen spezielle Schlüssel vorhanden sind, wie z.Stattdessen können Sie mit admin-post.php eine Rückruffunktion angeben, die bei jeder Anforderung, die einen Aktionswert liefert, der mit dem der Aktion angegebenen Suffix übereinstimmt, immer aufgerufen wird.
Im obigen Beispiel können wir auf die Notwendigkeit verzichten, dies zu überprüfen,
!empty($_POST['action']) && $_POST['action'] === 'xyz'
da zu diesem Zeitpunkt die Verarbeitung für uns erledigt wurde .Dies ist das Ergebnis der Angabe des Aktionsparameters und des Werts und der Veröffentlichung dieses Werts an die
admin-post.php
URL.Darüber hinaus ist es von Vorteil, dass
admin-post.php
beides behandelt wird$_POST
und es$_GET
daher nicht erforderlich ist, zu überprüfen, um welche Art von Methode es sich bei der Anforderung handelt, es sei denn, Sie möchten eine komplexere Verarbeitung durchführen.Endeffekt:
Es ist sicher zu benutzen, es ist nur der Name, der dich abschreckt.
Übrigens sollten Sie
wp_redirect()
den Benutzer auch daran erinnern, an einen akzeptablen Ort zurückzukehren, da beim Anfordernadmin-post.php
nur ein weißer Bildschirm als Antwort zurückgegeben wird.quelle
Die Verwendung der
nopriv
Behandlung (für nicht angemeldete Benutzer) scheint ziemlich klar zu seinadmin-post.php
, da diese tatsächlich sowohl für die Frontend- als auch für die Backend-Formularverarbeitung verwendet werden kann, ähnlich wie sieadmin-ajax.php
verwendet werden kann.quelle
admin-ajax.php
- der Admin-Teil scheint in beiden Fällen etwas irreführend zu sein ... es kann hilfreich sein, Admin wie in wie in zu denken,adminstration
anstattadministrator
...