web-dev-qa-db-fra.com

mes pauses thématiques WP exportation

Je sais que la question est vague. Veuillez y consacrer du temps si vous êtes d'humeur. Je n'ai pas besoin d'être flétri pour ne pas être plus précis.

J'ai un problème avec un thème que je développe, pour une raison quelconque, cela rompt la fonction d'exportation de WordPress.

Je ne demande à personne de résoudre mes problèmes ici, mais après y avoir passé quelques heures, j'aimerais demander si quelqu'un reconnaît ce problème et me donnerait un indice quant à la direction à prendre. le problème.

En quelque sorte, j'ai le sentiment que cela a à voir avec un échec sans vérification, mais je ne suis pas sûr.

Quoi qu’il en soit, le problème est que si je clique sur le bouton Exporter de la page

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

j'obtiens ensuite l'écran WP Failure Notice. L'URL que je veux en venir est ceci:

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

et la page dit:

Es-tu sûr de vouloir faire ça? Veuillez réessayer.

Je pense que cela doit venir de wp_explain_nonce () dans wp-includes/functions.php

Si je passe au thème des vingt-dix, le problème disparaît. Retour à mon thème, et c'est là, donc ce doit être le thème ..

Tous les conseils sur où regarder ou comment aborder attraper le bogue dans mon thème sont les bienvenus.

1
mikkelbreum

L'idée de base pour le débogage ici est que le thème influence apparemment quelque chose qu'il ne devrait absolument pas. Soit quelque chose est mal fait ou mal placé.

  1. Vérifiez que le thème n'exécute aucune fonctionnalité directement dans functions.php.

  2. Vérifiez que toutes les fonctionnalités du thème fonctionnent sur les points d'ancrage appropriés.

  3. Pour les points d'ancrage utilisés à la fois sur les serveurs frontaux et dorsaux, excluez de manière conditionnelle les fonctionnalités du thème qui ne sont pas censées fonctionner sur les serveurs dorsaux.

2
Rarst

Le problème était que j'avais ce code dans l'une de mes pages d'administration de thème:

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

qui a été déclenché par la requête d'exportation car cela définit également $ _GET ['download'] var.

La solution que j'ai proposée consistait à m'assurer que mon chèque ne fonctionnait que lorsque la page pertinente était demandée, et j'ai également remplacé la variable par un élément unique:

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