WordPressで最終更新日時を取得・表示する関数。SEOにも有効!

SEOで過去記事の見直しや修正が良いとされています。
なぜなら情報は日々古くなりますし、常に新しくしていく必要があります。

情報を探すときに、私自身最終更新日を気にします。
そうでなければ古い情報を使ってしまい、間違っていることがたまにあるからです。

せっかく記事を更新しても最終更新日がいつかわからないければ、読者には新しい記事であるということが伝わりません。
なので、最終更新日がいつかわかるように設定してあげましょう。

スポンサーリンク

最終更新日の表示

投稿日に関しては、Wordpressなら元の設定で表示されていることが殆どです。
ですが最終更新日に関して言えば、内部(HTML)ではちゃんと表示されている物もありますが、読者に見える箇所という点では更新日が表示されているテーマは、ほぼ見かけません。これでは勿体無い…

なので、最終更新日が読者の方にも見えるようコード打ち込みます。
PHPファイルをいじるので、バックアップはちゃんと取っておきましょう。

入れる箇所は、固定ページならpage.phpに投稿記事ならsingle.php入れます。(テーマによっては、少し違うかもしれませんが…)

<?php if (get_the_modified_date('Y/n/j') != get_the_time('Y/n/j')) : ?>
最終更新日: <?php the_modified_date('') ?>
<?php endif; ?>

このコードを好きな箇所に入力することで、更新した日があれば表示されます。
もし更新日がない場合、非表示となります。

上記のコードだと、元の設定の日付表示がされるので、日付の表示を変えたい場合は2行目のカッコの中に表示したい単語を入れましょう。
表示例は下記のリンクを参考にしてください。

日付と時刻の書式|Wordpress

例として、

  • Y/m/d : 2016/11/11
  • Y-m-d : 2016-11-11
  • F j Y : November 11, 2016

などがあります。

予約投稿をする場合は追加コードを

さて上記のコードだけでも十分なのですが予約投稿した場合、更新日が投稿日より前になってしまうということがあります。
自分は分かっているので問題ないですが、読者からすれば少し違和感があります。

その違和感を無くすために予約投稿した際は、更新日を投稿日と同じにするコードを打ち込んであげましょう。
このコードを入れる箇所は、function.phpです。

function get_mtime($format) {
$mtime = get_the_modified_time('Ymd');
$ptime = get_the_time('Ymd');
if ($ptime > $mtime) {
return get_the_time($format);
} elseif ($ptime === $mtime) {
return null;
} else {
return get_the_modified_time($format);
}
}

参考サイト:記事の更新日をHTML5対応にして正しくGoogleに伝える方法[WordPressカスタマイズ]

このコードを入れておけば混乱を防げるでしょう。

検索エンジンに正しい更新日を伝える

紹介してきたコードは、読者など人側に対して見える面でのコードであり、SEO面でGoogleなどの検索エンジン側に適したコードを打ち込んであげる必要もあります。

updateday1

上記の画像のように、投稿日や更新日時が、

<time>〜</time>

で囲われていれば問題ありません。

もしdivやpという単語で囲われているだけ、投稿日しかないといった場合には修正が必要です。
timeで囲わずにいると投稿日や更新日が検索エンジン側に伝わらず、検索結果で日時は表示されません。

updateday2

これが悪いというわけではないのですが、日付が表示れていないと情報が古いのか新しいのかわからない。
どれが新しい情報で正しいのかわからない…
となってしまいます。

Googleは読者により良い情報をあたえてくれるサイトを検索上位に表示する、と言われています。
なので、少しでも不安を与えないために日時をきちんと伝えているサイトを今後のアップデートで上位に表示させるようにするかもしれません。(あくまで推測ですが)

そうなった時のためにも、検索エンジン側にも日付を伝えるコードを入れてあげましょう。
必要なコードは、HTML5で新しく登録されました。

投稿日を検索エンジンに伝える

投稿日にはわかりやすく、classにpublishedと入れてあげましょう。

<time class="entry-date published" datetime="<?php echo get_the_date( 'Y/m/d' ) ?>"><?php echo get_the_date( 'Y/m/d' ) ?></time>

更新日を検索エンジンに伝える

更新日にはわかりやすく、classにupdatedと入れてあげましょう。

<?php if (get_the_modified_date('Y/n/j') != get_the_time('Y/n/j')) : ?>
最終更新日: <time class="updated" datetime="<?php the_modified_date('') ?>"><?php the_modified_date('') ?></time>
<?php endif; ?>

これで今まで上で書いてきたことも取り入れられ、SEO的にも問題ないでしょう。
適当な箇所に入れて表示させるようにしてあげてください。

参考サイト:google Webマスターツールでupdateの大量エラー WordPressのファイル修正

まとめ

内部をいじるので間違えると復旧がとても面倒なことなる場合があります。慣れていない時は、バックアップを必ず取るようにしましょう。

不安な方は、誰かに依頼するのもいいかもしれません。
1時間もあれば終わるので、だいたい2~5000円ほどでやってくれると思います。
私達への依頼も受け付けておりますので、ご希望の方はこちらのお問い合わせから連絡ください。

お問い合わせ