ACFや権限ユーザー毎の表示カスタムを行っているときに、WordPressのメディアアップロードから画像をアップロードすると、
「アップロード中にエラーが発生しました。後ほど再度お試しください。」
とエラーが表示されました。
リロードすると、画像は正常にアップロードされているのですが、今後のことを含めて、原因を調査してみました。
今回は、通常のメディアアップロード時のエラーではなく、かなりイレギュラーな環境なので、かなりレアな対処法になるかもしれません。
はじめてアクションフックやフィルターフックを使用することもあり、解決まではけっこう手間がかかりました。
1.ACF(Advanced Custom Fields Plugin for WordPress)で条件設定した投稿ページより画像をアップロード
2.function.phpにアクションフックやフィルターフック権限ユーザーごとに表示制御をする
3.投稿者の権限ユーザーのすべての記事数からメニュー表示制限をする
上記の制作環境でしたので、エラー対応は大変になるかと思っていましたが、結論からいうと、とても簡単な原因でした。
add_action( ‘admin_menu’,xxx)
上の管理者メニュー部のアクション関数の中に、下の管理者上部メニューの表記制御を書き込んでいたためでした。
add_action(‘admin_enqueue_scripts’,xxx)
アクションフックの仕様がはじめてだったので、通常の関数のように条件下で実行した機能を記述していたのが問題でした。
アクションフックにはそれぞれアクション名が割り当てられていて、それぞれのアクション内で記述できることが限られているようで、それぞれ制限された制御アクションが実行可能なようでした。
今回はadd_action(‘admin_enqueue_scripts’,xxx)内で制御するべき記述をadd_action( ‘admin_menu’,xxx)内に配置していたので、
add_action(‘admin_enqueue_scripts’,xxx)内で実行されることで、上記のメディアアップ時のエラーが表示されなくなりました。
もしかすると、原因はほかにあるかもしれないのですが、上記の対処でエラーが表示されなくなったので、ほぼ原因は間違いないようです。
ただいまコメントは受け付けていません。