指定期間内に公開した記事タイトルに一括で新着表示をつける

概要説明

記事公開から何日は新着情報として表示させたいという場合のカスタマイズ。指定箇所にそれぞれ設定する場合が一般的ですが一括で対応したい時用のカスタマイズ。条件分岐を追加することで表示させたいページの制御も可能です。

functions.php
/*----------------------------------------------------
 管理画面以外の記事タイトルに一括で[new]をつける
----------------------------------------------------*/
if ( !function_exists( 'add_new_all_title' ) ){
    if(!is_admin()) {
        function add_new_all_title($the_title) {
            $days           = 3; // 公開から何日目まで new を表示させるか
            $published_time = get_post_time();
            $today          = wp_date('U');
            $diff_time      = $today - ($days * 60 * 60 * 24); // 日付*1日の秒数

            // 期間判定
            if($published_time > $diff_time) {
                return '[new] '. $the_title;
            } else {
                return $the_title;
            }
        }
        add_filter('the_title','add_new_all_title');
    }
}

管理画面、詳細ページ以外のタイトルに一括で新着[new]をつける

functions.php
/*----------------------------------------------------
 管理画面と詳細ページ以外の記事タイトルに一括で[new]をつける
----------------------------------------------------*/
if ( !function_exists( 'add_new_all_title' ) ){
    if(!is_admin()) {
        function add_new_all_title($the_title) {
            $days           = 3; // 公開から何日目まで new を表示させるか
            $published_time = get_post_time();
            $today          = wp_date('U');
            $diff_time      = $today - ($days * 60 * 60 * 24); // 日付*1日の秒数

            // 期間判定 & 詳細ページを除外
            if($published_time > $diff_time and !is_single()) {
                return '[new] '. $the_title;
            } else {
                return $the_title;
            }
        }
        add_filter('the_title','add_new_all_title');
    }
}

一括での新着表示にタグを使う場合は要注意

// 問題となる場合のサンプル
<a href="#" title="[new] 記事タイトル">[new] 記事タイトル</a>

title属性などで記事タイトルを使っている場合は新着表示にタグは使わないほうが良いです

指定箇所で新着表示を付ける場合(タグ利用可能)

functions.php
/*----------------------------------------------------
 指定箇所で新着表示を付ける場合
----------------------------------------------------*/
if ( !function_exists( 'add_new_title' ) ){
    function add_new_title($published_time) {
        $days           = 3; // 公開から何日目まで new を表示させるか
        $today          = wp_date('U');
        $diff_time      = $today - ($days * 60 * 60 * 24); // 日付*1日の秒数

        // 期間判定
        if($published_time > $diff_time) {
            echo '<span style="color:red">[new]</span>';
        }
    }
}
// 下記コードにて任意の位置で表示できます
<?php add_new_title(get_the_time('U')); ?>

WordPress Developer Resources

関連機能

  1. 表示前にフックして出力テキストを置換する

  2. ローカル環境構築ツール「Local」でWordPress作業環境を構築 ( Windows,Mac対応 )

  3. RSSフィードを使ってWordPress同士のコンテンツを共有

サイドバー

よく使うカスタマイズ

最近の記事

アニメの名言集

ファーストキスのような
強烈な行為と共に
海馬に記憶されたエピソードは
忘却しにくいのよ

STEINS;GATE
by 牧瀬紅莉栖

Profile

PAGE TOP
Amazon プライム対象