it-swarm.com.de

mein Thema bricht WP Export

Ich weiß, das ist eine vage Frage, bitte verbringe einfach Zeit damit, wenn du in der richtigen Stimmung bist. Ich muss nicht geflammt werden, um nicht genauer zu sein.

Ich habe ein Problem mit einem Thema, das ich entwickle, aus irgendeinem Grund bricht es die Exportfunktion von WordPress.

Ich fordere hier niemanden auf, meine Probleme zu lösen, aber nachdem ich einige Stunden damit verbracht habe, möchte ich fragen, ob jemand dieses Problem erkennt, und mir einen Hinweis geben, in welche Richtung ich suchen soll das Problem.

Irgendwie habe ich das Gefühl, dass es mit einem Nonce-Check-Fehler zu tun hat, bin mir aber nicht sicher.

Jedenfalls ist das Problem, dass, wenn ich auf die Schaltfläche Exportieren auf der Seite klicken

http://www.myserver.com/wp-admin/export.php

dann erhalte ich den Bildschirm WP Failure Notice. Die URL, zu der ich gehe, ist folgende:

http://www.myserver.com/wp-admin/export.php?download=true&content=all&cat=0&post_author=0&post_start_date=0&post_end_date=0&post_status=0&page_author=0&page_start_date=0&page_end_date=0&page_status=0&submit=Download+Export+File

und die Seite sagt:

Möchten Sie das wirklich tun? Bitte versuche es erneut.

Ich denke, das muss von wp_explain_nonce () in wp-includes/functions.php kommen

Wenn ich zum zehnundzwanzigsten Thema wechsle, ist das Problem weg. Zurück zu meinem Thema, und es ist da, also muss es das Thema sein.

Jeder Rat, wo ich suchen oder wie ich den Fehler in meinem Thema aufspüren soll, ist willkommen.

1
mikkelbreum

Die Grundidee für das Debuggen ist, dass das Thema anscheinend etwas beeinflusst, was es überhaupt nicht sollte. Entweder wird etwas falsch gemacht oder am falschen Ort.

  1. Stellen Sie sicher, dass das Design keine Funktionen direkt in functions.php ausführt.

  2. Stellen Sie sicher, dass alle Funktionen des Themas auf geeigneten Hooks ausgeführt werden.

  3. Schließen Sie für Hooks, die sowohl im Front-End als auch im Back-End verwendet werden, die Funktionalität des Themas aus, die im Back-End nicht funktionieren soll.

2
Rarst

Das Problem war, dass ich diesen Code auf einer meiner Themenadministrationsseiten hatte:

if (isset($_GET['download']))
    check_admin_referer('mytheme_options_storage');

die durch die Exportanforderung ausgelöst wurde, da dies auch $ _GET ['download'] var setzt.

Die Lösung, die ich gefunden habe, bestand darin, sicherzustellen, dass meine Prüfung nur ausgeführt wurde, wenn die entsprechende Seite angefordert wurde, und die Variable in etwas Einzigartiges zu ändern:

if (isset($_GET['mytheme_download']))
    check_admin_referer('mytheme_options_storage');
3
mikkelbreum