1年以上前の古いWordPress記事に「◯年以上経過しています」と警告文を表示するショートコードの作成方法

WordPress

技術系のブログを閲覧しているとタイトル下やアイキャッチ画像の下に「この記事は公開から◯年以上経過しています」と警告文が表示されていることがあります。

今回はWordPressの投稿ページ(single.php)に、PHPを使いショートコードとして警告文を出力できるようなカスタマイズをご紹介します。

コード記述例

functions.php内

//古い記事に警告文を追加する
function oldArticleWarning(){
    $warningMsg = '';

    if(is_single()){
        $nowDate = new DateTime(); //現在日時を取得
        $relDate = new DateTime(get_the_date('Y-m-d')); //公開日を取得
        $modDate = new DateTime(get_the_modified_date('Y-m-d')); //最終更新日を取得

        $diffDate1 = $nowDate->diff($relDate)->format('%a'); //現在日時と公開日を比較
        $diffDate2 = $nowDate->diff($modDate)->format('%a'); //現在日時と最終更新日を比較
        $diffDate3 = $relDate->diff($modDate)->format('%a'); //公開日と最終更新日を比較

        //公開日 = 最終更新日の場合は公開日を基準にする
        if($diffDate3 == '0'){
            if($diffDate1 > 365){
                $warningMsg = 'この記事は公開日から
                '.floor($diffDate1/365).'年以上経過しています。
                最新の情報ではないことにご注意ください。';
            }
        }else{
            if($diffDate2 > 365){
                $warningMsg = 'この記事は最終更新日から
                '.floor($diffDate2/365).'年以上経過しています。
                最新の情報ではないことにご注意ください。';
            }
        }
    }
    echo $warningMsg;
}
add_shortcode('oldwarning','oldArticleWarning');

single.php内

警告文を表示させたい部分に以下のコードを追記します。

echo do_shortcode('[oldwarning]');

参考にさせていただいた記事

WordPressで古い記事注意を表示する
プログラミングなどの記事の場合、時間が経過すると利用できないコードになっていることも多々あります。Wordpressの投稿記事の登録日と更新日を基準に、1年以上経過した記事上部に警告メッセージを表示する処理をプラグインを利用して作成しました...

コメント

タイトルとURLをコピーしました