WordPressの記事の更新日の表示を加える方法です。
今回紹介する方法は、テーマエディターを使用しての変更になります。その為、プログラムについて、若干の知識がないと、解りにくいかもしれません。各テーマによって、変更方法は異なりますが、キーポイントを押さえれば、どのテーマでも応用できます。
更新日を追記する理由
更新日を加えることによって、記事が投稿されたのが古かったとしても、常に最新の状態に更新されているということを、閲覧者に知らせることが出来ます。記事の信頼度が増します。
プラグインを使用しなかった理由
いつも新たな機能を追加する時は、プラグインを使用しています。簡単ですからね。ただ、今回は、下記の理由でプラグインを使用しませんでした。
- 既に多くのプラグインを使用している為、プラグインの使用を減らしたかった。
- PHPの知識を少し得たので、自分の知識を試してみたかった。
- グーグルで、方法を調べたが、テーマエディターでの変更が多かったから。
- グーグルでの方法を確認した限り、自分でも修正可能だと判断した。
年日関数の知識
まず関数を紹介します。get_the_date()、get_the_modified_date()です。
get_the_date()は記事の投稿日の日を取得する関数。
get_the_modified_date()は記事を更新した日を取得する関数。
これらの関数で共通して使用する、引数があります。
Y | 年を取得する引数 |
n | 月を取得する引数 |
j | 日を取得する引数 |
例えば、記事の投稿日が2019年6月3日なら、get_the_date(Y)は12, get_the_date(n)は6、get_the_date(j)は3となります。
get_the_dateの場所を探す
テーマのプログラムで日付を表示しているプログラムを探します。検索するワードはget_the_dateです。私が使用しているwellingtonはtemplate-tags.phpにありました。
テーマエディター内のプログラムで一つ一つのプログラムで検索をかけるのは、少し手間になりますが、試してみて下さい。別の方法で、プログラムファイルをデスクトップに保存していれば、前回紹介したCodeエディターを使用し、プログラムフォルダー内の検索を実施してみて下さい。
複数見つかるかもしれませんが、プログラム記述で日時を記述している関数を見つけることが出来ると思います。
プログラムの編集
条件文
該当するプログラムが見つかれば、編集することになります。
最初に試したことは、get_the_date()、get_the_modified_date()を用いて、それぞれの値が同じであれば、更新日は表示しないとし、異なれば、更新日も表示するという風にしました。
ここで不具合が発生しました。投稿日が更新日より新しい日に表示されることがありました。記事を公開するまでに、下書き保存をするので、その時の保存日がget_the_modified_date()に入るのかもしれません。記事を公開してから、更新すれば、上記の条件で、大丈夫になります。
最終的に作成した条件は、更新日が投稿日と同じ、もしくは古ければ、投稿日のみ表示し、更新日が投稿日より新しければ、投稿日と更新日を表示するという風にしました。内容としては当然のことですが、問題は、プログラムではどう書くのかということです。下記のようになります。
$pday_year =get_the_date(‘Y’); $pday_month =get_the_date(‘n’); $pday_day =get_the_date(‘j’); $mday_year =get_the_modified_date(‘Y’); $mday_month =get_the_modified_date(‘n’); $mday_day =get_the_modified_date(‘j’); $kdcomparison =0; if($mday_year > $pday_year){ $kdcomparison =1; }elseif($mday_year == $pday_year){ if($mday_month > $pday_month){ $kdcomparison =1; }elseif($mday_month == $pday_month){ if($mday_day > $pday_day){ $kdcomparison =1; } else{ $kdcomparison =0; } } else{ $kdcomparison =0; } }else{ $kdcomparison =0; } |
変数の意味
$pday_year | 投稿日の年 |
$pday_month | 投稿日の月 |
$pday_day | 投稿日の日 |
$mday_year | 更新日の年 |
$mday_month | 更新日の月 |
$mday_day | 更新日の日 |
$kdcomparison | 比較。0の際は、更新日なし。1の時は更新日追記。 |
更新日の追記
追記の仕方は、各テーマによって異なります。
投稿日を表示する構文があれば、get_the_date() から想像がつくと思います。それを参考にして、get_the_modified_date()の構文を追記してみて下さい。
まとめ
WordPressを使用し始めて2週間。その間にCSC、PHPの基本をさらっとトライしてみました。まだまだ、プログラムがどのように成り立っているかが理解しておりませんが、今回の更新日の追記をすることが出来ました。WordPressを始められて、プログラムの勉強も始められた方の参考になればと思います。
コメント