wordpressで更新日と公開日を両方を表示してGoogleの検索結果に反映させる

WordPressで更新日と公開日を両方を表示してGoogleの検索結果に反映させる方法を試してみました。できるだけわかりやすく解説してみますね(*´∇`*)

予約投稿した場合、修正日より公開日の方が早いことを防ぐ処理

まずは修正日を追加するにあたり、公開日と修正日の関係を明確にしてあげます。

function.phpに次のコードを追加。万が一、間違えて真っ白になってしまったらFtpソフトから元に戻すと楽です。

/*
   公開日と修正日の処理
  予約投稿した場合、修正日より公開日の方が早いことを防ぐ処理
  get_the_modified_time()が修正された時間
*/
 
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);
    }
}

簡単に解説すると、こちらは値を変数に格納して、if文で切り分けているだけですね。予約投稿した場合、修正日より公開日の方が早いことを防ぐ処理です。

Googleに伝えるなら、最終更新日にtimeを使おう

公開日と最終更新日を表示するコードです。ほとんどのテーマの場合、single.phpに日付のコードが書かれているため、そこに追加します。もともと、公開日が表示されている場合、元のコードは消さないとダメです。

<!-- 公開日と最終更新日 -->
<?php if (get_mtime('c') == null) : ?>
公開日:<time class="entry-date date published" datetime="<?php the_time('c') ;?>">
<?php the_time('Y年n月j日') ;?></time>
<?php endif; ?>
<?php if (get_mtime('c') != null) : ?>
公開日:<?php the_time('Y年n月j日') ;?><br>
<time class="entry-date date updated" datetime="<?php if ($mtime = get_mtime('c')) echo $mtime; ?>"><?php if ($mtime = get_mtime('Y年n月j日')) echo '最終更新日:' , $mtime; ?></time>
<?php endif; ?>

ポイントとなるのはtimeです。timeは日時をマークアップするタグのため、Googleさんに伝われば検索結果に更新日が表示されるという仕組みですね。

あとは日付を表示させるコードを書いているだけです。

最終更新日を表示するコードです。もともと、公開日が表示されている場合、このコードのみ追加する方法でもいいかもしれません。

<!-- 最終更新日 -->
<?php if (get_mtime('c') != null) : ?>
<time class="entry-date date updated" datetime="<?php if ($mtime = get_mtime('c')) echo $mtime; ?>"><?php if ($mtime = get_mtime('Y年n月j日')) echo '最終更新日:' , $mtime; ?></time>
<?php endif; ?>

「get_mtime(‘c’) != null」、つまり、修正日がnullではない場合、timeを公開日につけず修正日につけてあげます。これだけです。

今回、ブログのテーマに公開日が表示されていたので、最終更新日だけを追加しました。もちろん、ブログのテーマの公開日とコメントアウトして、「公開日と最終更新日」をセットで使うのもありです。

タグtime datetimeの使い方

もっと噛み砕いて説明するため、timeの基本的な使い方も解説しますね。下記の場合、2016年の12月12日にマークアップされ、検索エンジンがその情報を利用していれば伝わります。

<time datetime="2016-12-12">12月12日</time>

今回、この基本がphpのget_mtimeに置き替わり、取得しているだけですね。

datetime以外に昔pubdate属性がありましたが、こちらは廃止されていますので使わないようにしましょう。

参考サイト〜ありがとうございます〜

今回、参考にさせてもらったサイトは次のとおりです。ありがとうございます。

12436288584_94d6bc46d2_b.jpg
検索結果に表示される日時を正しく検索エンジンに伝える方法です。
12436288584_94d6bc46d2_b.jpg
WordPressのテーマをいじって、記事タイトルの下に記事の公開日に加えて最終更新日を表示するようにしました。今までは記事を編集した際に変更した部分に日付を併記していたのですが「この記事は最近更新されたんだ」とわかりやすくなりました!

timeの解説はこちらです。

12436288584_94d6bc46d2_b.jpg
timeタグは、正確な日付と時刻をマークアップするためのタグです。pubdate属性は廃止されています。

Googleの検索結果に更新日がいつ表示されるのか検証する方法と検証結果

記事のタイトルでぐぐればすぐ検証できますよ!

一応、公開日と更新日の両方が表示されているサイトを調査したところ、公開日になったままの記事ときちんと更新日になっている記事の両方がありました。

あたしのサイトもわずか数日で更新日に修正された記事もあります。

確実に更新日を表示したいなら、公開日を非表示にする必要がありそうです。

公開日と修正日の両方が表示したい場合、いったん修正日のみ表示して、日付がアップデートされたらまた元に戻してもいいかもしれませんね。

この記事がよかったら「いいね!」「シェア♪」をお願いしますヽ(=´▽`=)ノ