動作確認はしていませんが、redirect_post()関数にあるredirect_post_locationフィルターでうまくいきそうな気がします。
save_post
の場合 カスタムフィールドのプラグインなどの実装によっては、そのフックで値を保存していたりするので、その後に実行される、wp_insert_post
でやってみるかつ、プライオリティーを 9999とかにしてみるあたりですかね。
redirect_post_location を使う方が筋が良いような気もしますけど(^^;;;
function my_redirect_post_location($location){
if(isset($_POST['save']) || isset($_POST['publish'])){
header('Location:'.admin_url('edit.php'));
// return wp_redirect(admin_url('edit.php'));
exit;
}
return $location;
}
上記をfunctions.phpに入れることで、公開時・更新時にリダイレクトさせることができました。
いろいろなフックがあり便利ですね。知らないフックがまだまだあるので、勉強していきたいです。
ちなみに、なぜかwp_redirect()を使うとうまくリダイレクトされなかったため、phpのheaderでリダイレクトさせました。
何か原因があるのでしょうか。
wp_redirect(admin_url('edit.php'));
自己レスです。
すみません、前の内容のwp_redirect()はコード流用したときに「return」が付いたままのため、うまくリダイレクトしなかったみたいです。
returnを削除すると正常にリダイレクトされました。
お恥ずかしい。