WordPress 未来の日付で投稿記事を公開する手順&最近の投稿等の表示結果

ブログから大規模サイトまで作れる WordPress で、未来の日付で投稿記事を公開しようとすると予約済みの状態になりその日まで公開されないルールを変更して、未来の日付ですぐに投稿記事を公開する手順と、「前後の投稿」や「最近の投稿」の順番がどのようになったかを紹介します。

WordPress 公式日本語ローカルサイト 20250127

通常は未来の日付で公開しようとすると予約済みになります

WordPress では、未来の日付を設定してステータス「公開済み」にできますが、実際はその日付になるまで公開されない「予約済み」の状態になります。
それを確認してみましょう。

WordPress のダッシュボードを開いて、左側のツリー「投稿」→「投稿一覧」を選択します。
日付を変更したい投稿記事のタイトル付近をマウスオーバー(ホバー)すると、タイトルの下側にメニューが表示されるので「クイック編集」選択します。

WordPress 未来の日付で記事をすぐに公開する1

クイック編集の画面が表示されるので、「日付」項目未来の日付を設定して、「ステータス」項目「公開済み」を選択して「更新」ボタンを押します。

WordPress 未来の日付で記事をすぐに公開する2

投稿一覧に戻ると、「公開済み」ではなく「予約済み」になっていて、まだ公開されていないことが確認できます。

WordPress 未来の日付で記事をすぐに公開する NG例1

以上が、 WordPress で未来の日付を指定して公開する際の通常の結果です。

functions.php へコードを追加

未来の日付で公開しようとするとステータス「予約済み」になり、その日まで公開されない通常のルールを変更するために、テーマの functions.php を変更します。

functions.php の変更に失敗するとサイトが壊れてしまう可能性があるので、安全のため子テーマの functions.php を変更します。
※例として無料で使えるテーマ Cocoon の子テーマ Cocoon Child を使用してテーマの functions.php を変更します。

子テーマに関しては、以下の記事を参照してください。

テーマのスクリプトを編集するには、ダッシュボードの左側のツリー「外観」→「テーマファイルエディター」を選択します。
開いた「テーマを編集」ページで、右上の「編集するテーマを選択」項目で子テーマ(例では Cocoon Child)を選択してから、右下のテーマファイル一覧から functions.php選択します。

WordPress 未来の日付で記事をすぐに公開する3

functions.php の最後の行に、以下のコードを追加します。
※コードを変更する前に、以前コードをコピーしてテキストに保存するなどバックアップをとりましょう。

以下のコードは、他サイト様「イベント情報の投稿に便利!WordPressの未来日付を公開する方法 | 札幌のオンラインWEBスクールでホームページを基礎から学べる「ゼロスタWEBスクール」」のコードの 最初の <?php と最後の ?> を除いた部分を使用しました。
※使用しているテーマ・子テーマによって、コードの追加方法は異なるかもしれません。

// 予約投稿を公開にする方法
// 参照:https://zerosta-webschool.jp/future-date-publish/
function future_post_to_publish($data) {
  if( $data['post_type'] == 'post' && $data['post_status'] == 'future' ) {
    $data['post_status'] = 'publish';
  }
  return $data;
}
add_filter('wp_insert_post_data', 'future_post_to_publish');

以前から記述されていた子テーマ Cocoon Child の function.php のコードとあわせると以下のようにハイライトの行に追加されました。

<?php //子テーマ用関数
if ( !defined( 'ABSPATH' ) ) exit;

//子テーマ用のビジュアルエディタースタイルを適用
add_editor_style();

//以下に子テーマ用の関数を書く
function widget_text_exec_php( $widget_text ) {
    if( strpos( $widget_text, '<' . '?' ) !== false ) {
        ob_start();
        eval( '?>' . $widget_text );
        $widget_text = ob_get_contents();
        ob_end_clean();
    }
    return $widget_text;
}
add_filter( 'widget_text', 'widget_text_exec_php', 99 );

// 予約投稿を公開にする方法
// 参照:https://zerosta-webschool.jp/future-date-publish/
function future_post_to_publish($data) {
  if( $data['post_type'] == 'post' && $data['post_status'] == 'future' ) {
    $data['post_status'] = 'publish';
  }
  return $data;
}
add_filter('wp_insert_post_data', 'future_post_to_publish');

コードを追加したら下側の「ファイルを更新」ボタンを押します。

WordPress 未来の日付で記事をすぐに公開する4

子テーマの functions.php ファイルの編集完了しました。

WordPress 未来の日付で記事をすぐに公開する5

クイック編集で未来の日付で公開

ここまでで、来の日付でもすぐに公開できるように子テーマを編集しました。

再び、ダッシュボードの左側のツリー「投稿」→「投稿一覧」を選択して、未来の日付を設定したい投稿記事のタイトルをマウスオーバー(ホバー)して表示されるメニュー「クイック編集」を選択しましょう。

WordPress 未来の日付で記事をすぐに公開する6

クイック編集の画面で、「日付」項目未来の日付を入力して、「ステータス」項目「公開済み」に変更して、「更新」ボタンを押します。

WordPress 未来の日付で記事をすぐに公開する7

すでに公開した記事の日付を変更した際は、「ステータス」項目に「公開済み」はなかったので「予約済み」を選択して、「更新」ボタンを押しました。

WordPress 未来の日付で記事をすぐに公開する9

投稿一覧をみると、クイック編集した投稿記事の日付が指定した未来の日付になっていて、ステータスは「予約済み」ではなく「公開済み」になりました。

WordPress 未来の日付で記事をすぐに公開する8

投稿記事のタイトルをマウスオーバー(ホバー)すると表示されるメニュー「表示」を選択して、公開された記事を確認してみましょう。

公開した記事の日付、前後の投稿、最近の投稿の確認

公開された記事を確認すると記事の右上の「公開日」に指定した未来の日付が表示されています。
「最近の投稿」にも同じタイトルが表示されています。
※公開日の位置はテーマによって異なります。

WordPress 未来の日付で記事をすぐに公開する10

以下のように3つの投稿記事に未来の日付を設定して公開した際の「最近の投稿」ウィジェットは、公開した順番に関係なく、指定した日付の順で表示されました。

WordPress 未来の日付で記事をすぐに公開した際の最近の投稿の順番

記事本文の下側に表示される「前後の投稿」も、公開した順番ではなく、指定した日付(公開日)の順番で案内が表示されました。
※デザインはテーマによって異なります。

WordPress 未来の日付で記事をすぐに公開した際の前後の記事の順番

まとめ

今回は、ブログから大規模サイトまで作れる WordPress で、未来の日付で投稿記事を公開しようとすると予約済みの状態になりその日まで公開されないルールを変更して、未来の日付ですぐに投稿記事を公開する手順と、「前後の投稿」や「最近の投稿」の順番がどのようになったかを紹介しました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました