[WordPress]公開日・更新日を元に記事に「New」ラベルを表示する

WordPressの記事更新情報などで、例えば「記事を公開してから7日間は”New”という文字(ラベル)を表示したい」というご要望があったりします。

日付を比較し表示する方法が書かれてある記事はあった記憶があるのですが、見当たらなくなってしまいました。

自分でも関数化して使い回しておりますが毎度スニペットアプリを見直したり、過去のコードを探したりする手間を省くため記事にもメモしておきます。

公開日・更新日を元に記事に「New」ラベルを表示

functions.phpに以下の関数を追加します。

デフォルト引数を指定しているので、以下のようにそのままテンプレートタグとして使用できるようにしてあります。一応記事ループ外で使用してもエラーが起きないようにしているハズですが、使うときは記事ループ内に記述してください。

初期状態では

  • ラベルのテキストは「New」
  • クラス名は「label」
  • 記事を公開してから7日間表示

となっています。

更新日を元にラベルを表示する例

この仕様を変更したい場合は、以下のように別の値を指定してください。更新日を元に表示する場合は第4引数に「‘modified’」を指定してください。

この引数指定だと

  • 更新日を元に3日間ラベルを表示
  • クラス名は「label label–red」という複合クラス
  • ラベルのテキストは「NEW!」

となります。


あまり引数を増やすのは関数設計としてはよろしくないようですが、致し方ないということで…。なるべく重要度を元に引数の順番を設定しておきました。

コメント

「何かそこ違うよ」「こうした方が良い」っていう部分があったら指摘して頂けると嬉しいです。

トラックバック

トラックバックは現在ありません。

Trackback: https://increment-log.com/wordpress-display-new-label/trackback/