WordPress

WordPress で記事の公開期間を簡単コントロール!カスタムフィールドに開始・終了日時を指定するだけでOKのクラス

TABLEofCONTENTS

カスタムフィールドに記事の公開日時範囲を指定するだけで幸せになれます。

大規模・企業サイトでは必須

公開日時の範囲指定はマストですよね… プラグインを使うと独自の UI が追加されてしまって、あぁカスタマイズ工数が… とつらくなることもあります。そんなときに便利な、管理画面を作り込んである場合でも、WordPress デフォルトのままでも、カスタムフィールドで公開範囲の日時さえ指定すればあとはよろしくやってくれるクラスを作りました。

このコードをテーマの functions.php またはプラグインファイルに貼り付けるか、ファイル自体をインクルードします。クラスを有効にするには以下のように書きます。

add_action( 
    'after_setup_theme'
  ,  create_function( '', 'new PM_Schedule_Post( "pubstart", "pubend", "label" );' )
);

PHP 5.3以上なら以下のようにも書けますね。

add_action( 'after_setup_theme',function() {
    new PM_Schedule_Post( "pubstart", "pubend", "label" );
});

クラスの引数

PM_Schedule_Post() の引数は以下の通りです。

pubstart
string required 公開開始日時用カスタムフィールドの名前(キー)英数字推奨
pubend
string required 公開終了日時用カスタムフィールドの名前(キー) 英数字推奨
label
string optional 公開終了ステータスの表示用ラベル

まとめ

このクラスは expired という投稿ステータスを追加します。画像の例では表示用ラベルを”公開終了”にしています。
1

日時の指定の仕方による動作の違い:

公開開始日時のみ指定
未来日時なら予約投稿になります。過去日時なら公開済になります。
公開終了日時のみ指定
即時公開され、指定日時に公開終了になります。
公開開始日時と公開終了日時の両方指定
指定された日時の期間だけ公開になります。

イレギュラーな指定で困ったことになった場合はお知らせください!