Heim > CMS-Tutorial > WordDrücken Sie > Fehler beim Save_Post Hook in WordPress anzeigen

Fehler beim Save_Post Hook in WordPress anzeigen

Joseph Gordon-Levitt
Freigeben: 2025-02-16 11:50:17
Original
846 Leute haben es durchsucht

Handhabung und Anzeigen von Fehlern aus dem WordPress save_post Haken: Drei Ansätze

WordPress fehlt eine einzelne, standardisierte Methode zum Verwalten und Anzeigen von Fehlern, die aus dem save_post -Haken stammen. Es gibt jedoch mehrere wirksame Strategien mit jeweils eigenen Stärken und Schwächen. In diesem Artikel werden drei herausragende Ansätze untersucht: Verwenden der globalen $_SESSION globalen, nutzenden WordPress -Transienten und Verwendung von GET -Parametern in Weiterleitungen.

Displaying Errors from the save_post Hook in WordPress

Die Komplexität ergibt sich aus der nachsparenden Umleitung von WordPress. Nachdem der save_post Hook ausgeführt wurde, wird der Benutzer umgeleitet, der den Ausführungs -Thread durchbricht und den Zugriff auf globale Variablen verliert. Daher ist ein Mechanismus erforderlich, um Fehlerinformationen von der Speicheraktion auf die umgeleitete Seite zu übertragen.

Methode 1: Verwendung des $_SESSION globalen

Diese einfache Methode speichert die Fehlermeldung in der globalen Variablen $_SESSION. Es ist einfach zu implementieren und vermeidet Datenbankinteraktion.

  • Implementierung:
if ( !session_id() ) {
    session_start();
}

if ($error) {
    $_SESSION['my_plugin_errors'] = $error->get_error_message();
}

// ...in admin_notices hook...
add_action( 'admin_notices', 'my_error_message' );
function my_error_message() {
    if ( isset( $_SESSION['my_plugin_errors'] ) ) {
        ?>
        <div class="error">
            <p><?php echo $_SESSION['my_plugin_errors']; ?></p>
        </div>
        <?php
        unset( $_SESSION['my_plugin_errors'] );
    }
}
Nach dem Login kopieren
  • Profis: Einfache Implementierung, kein Datenbankaufwand.
  • Nachteile: keine Standard -WordPress -Praxis; stützt sich auf die Sitzung der Sitzung, die bei allen Setups möglicherweise nicht konsequent aktiviert ist.

Methode 2: Verwendung von WordPress -Transienten

Transienten liefern einen WordPress-nativen Caching-Mechanismus. Sie speichern Daten mit einer Ablaufzeit, verwenden den Objektcache, falls verfügbar

  • Implementierung:
if ($error) {
    set_transient("my_save_post_errors_{$post_id}_{$user_id}", $error, 45);
}

// ...in admin_notices hook...
add_action( 'admin_notices', 'my_error_message' );
function my_error_message() {
    if ( $error = get_transient( "my_save_post_errors_{$post_id}_{$user_id}" ) ) {
        ?>
        <div class="error">
            <p><?php echo $error->get_error_message(); ?></p>
        </div>
        <?php
        delete_transient("my_save_post_errors_{$post_id}_{$user_id}");
    }
}
Nach dem Login kopieren
  • Profis: wordpress-freundlich, automatische Reinigung abgelaufener Daten.
  • cons: Datenbankinteraktion Wenn ein Objektcache nicht konfiguriert ist; potenzieller Datenverlust in Randfällen.

Methode 3: Anhängen eines GET -Parameters an die Umleitung von URL

Dies spiegelt den eigenen Ansatz von WordPress zum Anzeigen von Aktualisierungsnachrichten wider. Der Fehlercode wird als Abfrageparameter zur Umleitungs -URL hinzugefügt.

  • Implementierung:
if ($error) {
    add_filter('redirect_post_location', function( $location ) use ( $error ) {
        return add_query_arg( 'my-plugin-error', $error->get_error_code(), $location );
    });
}

// ...in admin_notices hook...
add_action( 'admin_notices', 'my_error_message' );
function my_error_message() {
    if ( isset( $_GET['my-plugin-error'] ) ) {
        // Handle error based on error code (switch statement)
        ?>
        <div class="error">
            <p><?php  // Display error message based on $_GET['my-plugin-error'] ?></p>
        </div>
        <?php
    }
}
Nach dem Login kopieren
  • Profis: Hochleistungsstarke, keine Datenbankzugriff.
  • cons: erfordert Duplikationsfehlermeldungen; Wartungsaufwand kann mit einer großen Anzahl von Fehlercodes zunehmen.

Schlussfolgerung

Die optimale Methode hängt vom spezifischen Kontext ab. Transienten bieten ein gutes Gleichgewicht zwischen WordPress -Integration und Leistung, während der GET -Parameteransatz die beste Leistung bietet, jedoch eine sorgfältigere Verwaltung von Fehlermeldungen erfordert. Die $_SESSION -Methode ist am einfachsten, aber in verschiedenen WordPress -Umgebungen weniger zuverlässig. Wählen Sie die Methode aus, die Ihren Anforderungen und Projektskala am besten entspricht.

Das obige ist der detaillierte Inhalt vonFehler beim Save_Post Hook in WordPress anzeigen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage