web-dev-qa-db-ja.com

テーマが中断されるWP export

私はこれが曖昧な質問であることを知っています、あなたが気分にあるならばちょうどそれに時間を費やしてください、私はより正確でないために非難される必要はないです。

私が開発しているテーマに問題があるのですが、何らかの理由でそれがWordPressのエクスポート機能を壊しています。

誰かにここで自分の問題を解決するように頼むのではありませんが、ここで何時間か過ごした後で、誰かがこの問題を認識しているのであれば私は尋ねたいです。問題。

どういうわけか私はそれがnonceチェック失敗と関係があると感じていますが、確かではありません..

とにかく問題は、私はページ内の[エクスポート]ボタンをクリックした場合、ということです

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

それから私はWP失敗通知画面を得ます。私が取っているURLはこれです:

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

そしてページは言う:

これを実行しますか?もう一度やり直してください。

これはwp-includes/functions.phpの中のwp_explain_nonce()から来ているに違いないと思います

私が20のテーマに切り替えると、問題は解決しました。私のテーマに戻ります、そしてそれはそこにあります、それでそれはテーマでなければなりません..

私のテーマのどこを見ればいいのか、どのようにアプローチするのかについてのアドバイスは大歓迎です。

1
mikkelbreum

ここでデバッグするための基本的な考えは、テーマは明らかにそれが全くすべきではない何かに影響を与えるということです。何かが間違った方法でまたは間違った場所で行われています。

  1. テーマがfunctions.php内で直接機能を実行していないことを確認してください。

  2. テーマのすべての機能が適切なフックで動作することを確認してください。

  3. フロントエンドとバックエンドの両方で使用されているフックについては、バックエンドでは動作しないはずのテーマの機能を条件付きで除外します。

2
Rarst

問題は、私のテーマ管理ページの1つにこのコードがあることです。

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

これは、エクスポート要求によってトリガーされ、それは$ _GET ['download'] varも設定します。

私が思いついた解決策は、関連するページが要求されたときにだけ私のチェックが実行されることを確認することであり、また私はその変数をユニークなものに変更しました:

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