概要説明
記事公開から何日は新着情報として表示させたいという場合のカスタマイズ。指定箇所にそれぞれ設定する場合が一般的ですが一括で対応したい時用のカスタマイズ。条件分岐を追加することで表示させたいページの制御も可能です。
~ 目次 ~
管理画面以外の全記事に一括で新着[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) { 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')); ?>