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

概要説明

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

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. DBキャッシュ機能を実装 外部データなど任意の情報を一定期間キャッシュさせる

  2. ico形式のファイルをアップロードできるようにする

  3. WordPressプラグインなしでカスタム投稿をタイトル、本文、アイキャッチ、カテゴリーを有効にして設定

サイドバー

よく使うカスタマイズ

最近の記事

アニメの名言集

人とは哀れなものだね
己にないもの程欲しくなる
届かぬものに程手をのばす

銀魂
by 神威

Profile

PAGE TOP
Amazon プライム対象