(45) 【WORDPRESS】最終更新からの経過日数を表示する。

投稿者: | 2017年10月29日

この記事は最終更新から 451日 が経過しています。

(1) やりたいこと

ネット上に公開されている情報はとっても役立つ。
しかし、日進月歩の世界であるため、数年前の情報は陳腐化して使えないことが多い。

そこで、自分の投稿にも
「この記事は最終更新から n日が過ぎています。」
のような警告文を表示するようにしたい。

このための WordPressプラグインを作ってみる。

(2) プログラム

以下、簡単なプラグインを作成する。

oldwarn.php

肝は以下の3点だ。
・add_filterで the_contentをフックする。
・フック関数では表示対象の投稿データ $post から最終更新日 post_modified を取得する。
・30日以上経過していれば経過日数を記事の上側に表示する。

<?php
/*
Plugin Name: Past days warning
*/
if (class_exists('OldWarn')) {
  $oldwarn = new OldWarn();
}
class OldWarn {
  public function __construct() {
    add_filter('the_content', array($this, 'proc_disp_content'));
  }
  public function proc_disp_content( $the_content ){
    global $post;
    if(is_singular('post')){    // 「投稿」の1画面表示?
      $past_days = floor((time() - strtotime($post->post_modified)) / (60 * 60 * 24));
      if($past_days >= 30){
$the_content = <<< EOM
<p style="border:1px #f00 solid;color:#f00">
この記事は最終更新から {$past_days}日が経過しています。
</p>
{$the_content}
EOM;
      }
    }
    return $the_content;
  }
}     // end of class

PHPソースコードからのプラグインの登録方法は以下の記事を参照のこと。
(22) WordPressで自作ウィジェットをプラグイン登録


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)