実現したいこと
特定の処理の後に
↓投稿を更新しました。のように’投稿・更新いただきありがとうございます。'
とメッセージを出したいです。
WordPressの投稿画面で投稿・更新ボタンを押したあとに画面上に通知を出すにはどうしたらよいのでしょうか?
前提
アクションフック admin_noticesを使用したが、なにも表示されません。
admin_noticesを特定の処理外で、行うと普通に表示されました。
error_logで特定の処理はできていること(問題ないこと)が確認できています。
発生している問題・エラーメッセージ
更新ボタンを押した後、投稿画面にメッセージが表示されない
該当のソースコード
PHP
1function adminNotices($message,$error = false){ 2 $noticesClass = $error ? 'error' : 'updated'; 3 $html = '<div class="'.$noticesClass.'">'; 4 $html .= ' <p>'.$message.'</p>'; 5 $html .= '</div>'; 6 echo $html; 7} 8 9function savePostFunc($post_id){ 10//画像リサイズ処理のコード 11 if( is_admin() ) { 12 error_log(var_export('処理はできたよ',true),3,'./log.txt'); 13 //↑/log.txtに表示される 14 add_action( 'admin_notices', function(){ 15 adminNotices('投稿・更新いただきありがとうございます。', true); 16 });// 更新に成功 17 } 18} 19add_action( 'save_post', 'savePostFunc' ); 20?>
試したこと
- add_action( 'admin_notices',を処理外(savePostFuncの外)で、行うと普通に表示されました。
- log.txt'の確認←'処理はできたよ',が表示されている
save_postに関連する関数内にアクションフックadmin_noticesを入れるとダメみたいです。admin_noticesが機能しなくなります。
PHP
1function show_update_message() { 2 $screen = get_current_screen(); 3 if ($screen->post_type == 'post') { 4 echo '<div class="notice notice-success is-dismissible"><p>更新ありがとう。</p></div>'; 5 } 6} 7 8function update_notice() { 9 add_action('admin_notices', 'show_update_message'); 10} 11 12add_action('save_post', 'update_notice');
2023/04/15 追記
https://wordpress.stackexchange.com/questions/368697/admin-notices-action-doesnt-trigger-within-save-post-action
↑パラメータの追加・取得ができない
補足情報(FW/ツールのバージョンなど)
PHP Version 7.4.33
WordPress 6.1.1

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。