クイック編集の更新後に表示される「行」の内容は、AJAXのinline-saveアクション(wp_ajax_inline_save())が返すレスポンスになります。
なので、このアクションが実行される前に一覧表示時と同じように“manage_posts_columns”などのフィルターを登録(追加)する必要があります。
標準AJAXアクションは優先度が1で登録されるため、私は同様のケースでadmin_initアクションを使用して対応しました。
add_action( 'admin_init', 'for_ajax_inline_save' );
function for_ajax_inline_save() {
if ( defined( 'DOING_AJAX' ) && DOING_AJAX &&
'inline-save' === $_POST['action'] &&
isset( $_POST['post_ID'] ) &&
(int) $_POST['post_ID'] ) {
add_action( 'restrict_manage_posts', ... );
// etc.
}
}
参考まで。
ご返信ありがとうございます。
教えて頂いたやり方を参考にし、”admin_init”で”manage_post_column”と”manage_post_custom_column”のフックを追加しましたが、上手く行きませんでした。
確認してみると、”admin_init”がクイック編集更新後に呼び出されていないようでしたが、プラグインやテーマの問題なのでしょうか?
そうなんですね。クイック編集更新後に更新した内容が表示されるのであれば、AJAXはリクエストされ、admin_initアクションは実行されていると思います。
確認になりますが、add_filter()で指定されているフィルター名は上記の”manage_post_column”と”manage_post_custom_column”で間違いないでしょうか。
‘manage_posts_columns’や’manage_posts_custom_column’が目的のフィルターではないかと思いますので、タイポしていないか確認してみてください。
すみません。こちらの確認方法が良くなかったようで、デバッグ環境を作成して、再度確認してみたところadmin_initが実行されていました。
manage_post_columnsで登録している関数がGETリクエストでposttypeの確認をしている為にクイック編集だと処理が実行されなかったようです。
解決にご協力いただきありがとうございました。