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

概要説明

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

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. WordPressページ表示までの処理時間を管理者にだけ表示させる

  2. WordPress制作者向け テスト、本番の環境判定、IPでの管理者判定

  3. WordPress作業にてよく使うChrome拡張機能 作業の効率UP! テーマ、プラグインの調査に大活躍な便利機能

サイドバー

よく使うカスタマイズ

最近の記事

アニメの名言集

当たり前と思われる所にこそ
答えは隠されているものだ

STEINS;GATE
by 岡部 倫太郎

Profile

PAGE TOP
Amazon プライム対象