Title: 予約投稿のタイミング
Last modified: 2010年3月18日

---

# 予約投稿のタイミング

 *  解決済 [shokun0803](https://ja.wordpress.org/support/users/shokun0803/)
 * (@shokun0803)
 * [16年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e4%ba%88%e7%b4%84%e6%8a%95%e7%a8%bf%e3%81%ae%e3%82%bf%e3%82%a4%e3%83%9f%e3%83%b3%e3%82%b0/)
 * `add_filter`で`wp_insert_post_data`をフィルタして記事が修正されたときに動作を
   行うコードを書いているのですが、`$post->post_content != stripslashes($data['post_content'])`
   でチェックをして分岐をしている場合の挙動で予約投稿のタイミングが掴めないので教え
   てください。
 * 上記のようなコードで、記事が修正されている場合に更新ボタンを押した場合private
   に変更し未承認のフィールドを追加（変更）するようにしています。
 * ここで、開いた記事を修正・更新 -> 未承認・privateになる -> そのまま日付を修正・
   予約投稿 -> 予約時間になったら公開されてしまう
 * 通常の更新ボタンを押す場合は、未承認記事の場合強制的にprivateになるのですが、
   予約投稿の場合は予約投稿ボタンを押してもprivateにならず、予約時間になってももちろん
   privateになりません。
 * 予約投稿のボタンを押したタイミングか、予約時間に自動投稿されるタイミングのフック
   はあるのでしょうか、ご教授お願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)

 *  [Yuriko IKEDA](https://ja.wordpress.org/support/users/lilyfan/)
 * (@lilyfan)
 * [16年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e4%ba%88%e7%b4%84%e6%8a%95%e7%a8%bf%e3%81%ae%e3%82%bf%e3%82%a4%e3%83%9f%e3%83%b3%e3%82%b0/#post-125569)
 * 予約投稿の場合、post_status に ‘future’ と入ってしまい、private 属性が消えてしまう
   のが原因ですね。
 * 予約投稿が公開されるときは wp_publish_post() が実行され、そこから wp_transition_post_status()
   が実行されて以下のアクションが発生します (wp-includes/post.php 参照)。
 * transition_post_status
    future_to_publish
 * (publish_post も発生しますが区別用にはたぶん使えない)
 *  トピック投稿者 [shokun0803](https://ja.wordpress.org/support/users/shokun0803/)
 * (@shokun0803)
 * [16年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e4%ba%88%e7%b4%84%e6%8a%95%e7%a8%bf%e3%81%ae%e3%82%bf%e3%82%a4%e3%83%9f%e3%83%b3%e3%82%b0/#post-125573)
 * ありがとうございます。
 * > 予約投稿の場合、post_status に ‘future’ と入ってしまい、private 属性が消えて
   > しまうのが原因ですね。
 * なので、
 *     ```
       if( $post->post_content != stripslashes($data['post_content']) && $current_user->user_level == 3 ) {
         ～記事が更新されている時の処理～
       } elseif( $current_user->user_level == 3 && $post->post_status == 'future' &&  $meta_values[0] == "未承認" && $post->post_type == 'post' ) {
       // 予約投稿で公開処理した時の処理。
         $data['post_status'] = 'private';
       } elseif( $current_user->user_level == 3 && $meta_values[0] == "未承認" && $post->post_type == 'post' ) {
       // 未承認記事を公開処理した時の処理。ここがないとゴミ箱が機能しない。
         if( $post->post_status != 'private' && $post->post_status != 'trashe' ) {
           $data['post_status'] = 'private';
         }
       }
       ```
   
 * 結局、こんな感じで「未承認かつfuture」を判断して強制非公開にしてみました。
    現在
   のところ動いていそうですので様子を見ます。

2件の返信を表示中 - 1 - 2件目 (全2件中)

 トピック「予約投稿のタイミング」には新たに返信することはできません。

## タグ

 * [予約投稿](https://ja.wordpress.org/support/topic-tag/%e4%ba%88%e7%b4%84%e6%8a%95%e7%a8%bf/)

 * フォーラム: [使い方全般](https://ja.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 2件の返信
 * 2人の参加者
 * 最後の返信者: [shokun0803](https://ja.wordpress.org/support/users/shokun0803/)
 * 最後の活動: [16年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e4%ba%88%e7%b4%84%e6%8a%95%e7%a8%bf%e3%81%ae%e3%82%bf%e3%82%a4%e3%83%9f%e3%83%b3%e3%82%b0/#post-125573)
 * 状態: 解決済

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
