サポート » 使い方全般 » 「投稿を更新しました」の際にリダイレクト

  • 解決済 ryo000

    (@ryofd)


    管理画面で投稿を編集する際に、更新(または公開)ボタン押下後、「投稿を更新しました。」(または投稿を公開しました。)と表示された時に、例えば投稿一覧にリダイレクトさせたいといったことは可能ですか。

    save_postなどのフックを利用してもうまくいかなかったのですが。
    (タイトルは保存されたが、カスタムフィールドは保存されなかった、記事が編集中のままロックされた状態だった等)

    フックや他に何か方法がありますでしょうか。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター Daisuke Takahashi

    (@extendwings)

    動作確認はしていませんが、redirect_post()関数にあるredirect_post_locationフィルターでうまくいきそうな気がします。

    save_post の場合 カスタムフィールドのプラグインなどの実装によっては、そのフックで値を保存していたりするので、その後に実行される、wp_insert_postでやってみるかつ、プライオリティーを 9999とかにしてみるあたりですかね。

    redirect_post_location を使う方が筋が良いような気もしますけど(^^;;;

    トピック投稿者 ryo000

    (@ryofd)

    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でリダイレクトさせました。
    何か原因があるのでしょうか。

    トピック投稿者 ryo000

    (@ryofd)

    wp_redirect(admin_url('edit.php'));

    自己レスです。
    すみません、前の内容のwp_redirect()はコード流用したときに「return」が付いたままのため、うまくリダイレクトしなかったみたいです。
    returnを削除すると正常にリダイレクトされました。
    お恥ずかしい。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「「投稿を更新しました」の際にリダイレクト」には新たに返信することはできません。