1,747 views
この記事は最終更新から 2300日 が経過しています。
(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で自作ウィジェットをプラグイン登録