MENU

check_and_publish_future_post()

check_and_publish_future_post() は、WordPressの予約投稿機能を支える内部関数の1つで、未来日時に設定された投稿が指定時刻を迎えたときに自動的に公開状態へ変更されるよう処理します。

WP-Cron によって自動的に呼び出され、投稿のステータスを future から publish に切り替えます。予約投稿の正常な動作に不可欠な関数です。

目次

基本構文

check_and_publish_future_post( int|WP_Post $post );

この関数は、指定された投稿が「公開予定(future)」であるかを確認し、現在時刻が公開日時を過ぎていれば投稿を公開状態へ変更します。

  • $post:投稿ID または WP_Post オブジェクトを指定します。

この関数は WordPress内部で使用される目的が主 で、通常は wp-cron 経由で自動実行されます。

引き数と戻り値

引数説明
$postint または WP_Post対象となる予約投稿の投稿IDまたは WP_Post オブジェクト
戻り値説明
なし(voidvoid成功・失敗にかかわらず何も返さず、状態を内部的に処理します。

使用例

タグを使った使用例

$post_id = 123; // 予約投稿のID
check_and_publish_future_post( $post_id );

このコードは、投稿ID 123 の投稿を即座に「公開」状態へ変更する処理を行います。ただし、この関数を直接使用することは推奨されておらず、通常は wp-cron により自動実行されるものです。

注意点

  • この関数は 内部関数であり非推奨_deprecated_function() が使われていませんが、公式には推奨されていません)。
  • 通常は wp-cron により自動で呼び出されるため、直接呼び出す必要はありません
  • 正しく動作させるためには、WordPressの cron 機構(wp_schedule_single_event() など)が有効である必要があります。
  • カスタム投稿タイプに対して予約投稿を使用する場合も自動的にこの関数が呼ばれます。

良く一緒に使われる関数

wp_schedule_single_event()

指定時間に一度だけ処理を行う WP-Cron イベントを登録します。check_and_publish_future_post() はこれによって予約実行されます。

wp_schedule_single_event( strtotime( $publish_time ), 'publish_future_post', array( $post_id ) );

wp_publish_post()

投稿ステータスを「公開」に変更します。check_and_publish_future_post() の内部でも使用されています。

wp_publish_post( $post_id );

get_post()

投稿情報を取得します。予約投稿の状態確認などで使われます。

$post = get_post( $post_id );
if ( $post->post_status === 'future' ) {
    check_and_publish_future_post( $post );
}

想定されるトラブル

予約投稿が公開されない

解決方法

  • WP-Cronが無効化されている、もしくは正しく動作していない可能性があります。
  • define('DISABLE_WP_CRON', true);wp-config.php に設定されていないか確認し、必要に応じて cron を外部から呼び出すように設定してください。

カスタム投稿タイプで予約投稿が動作しない

解決方法

  • supports 引数に 'custom-fields''editor' だけでなく、'revisions''public' => true があるか確認してください。
  • publicly_queryablefalse の場合も正常に予約投稿されないことがあります。

Q&A

予約投稿が勝手に失敗して「下書き」になるのはなぜ?

cron の遅延、またはサーバーが予約時刻にアクセスされていない可能性があります。

この関数を使ってすぐ公開する方法は?

投稿が future 状態である必要があります。また、現在時刻を post_date に設定すればすぐ公開されます。

check_and_publish_future_post() をカスタム処理に使ってもいい?

非推奨です。代わりに wp_publish_post() を使用するか、独自フックを設けてください。

まとめ

check_and_publish_future_post() は、WordPressの予約投稿機能を支える内部関数で、指定時刻に予約投稿を自動的に公開状態へ変更します。通常は wp-cron によって自動実行され、手動での利用は非推奨です。

予約投稿が公開されないなどのトラブルが起きた場合には、まず cron の設定やサーバーのアクセス状況を見直すことがポイントです。予約投稿の動作理解やトラブル対応の基礎として、知っておくと安心な関数です。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次