WordPressのテーマによっては発生してしまう、GoogleSearchConsole(ウェブマスターツール)から指摘された「autherがありません」と「updatedがありません」。
大量にエラーを吐き出して正直「げっ!」ってなりますよね^^;
これのにゃっほい屋で実際に解決したやり方を紹介します。
(このページでも一応同じ方法を使っています)
※この方法にはGoogle+アカウントが必要になります。
解決法
functions.phpに追加
function authoranddate(){ $html = '公開日:' . get_the_time('Y年n月j日'); if (get_the_modified_date('Y年n月j日') != get_the_time('Y年n月j日')){ $html = '公開日:' . get_the_time('Y年n月j日') . ' 更新日:<span class="updated">' . get_the_modified_date('') . '</span>'; }else{ $html = '公開日:<span class="updated">' . get_the_time('Y年n月j日') . '</span>'; } $html .=' ©<span class="vcard author"><span class="fn"><a href="自分のGoogle+URL" rel="author">著者名</a></span></span>'; echo '<div class="authoranddate">'.$html.'</div>'; }
「自分のGoogle+URL」と「著者名」のところだけ直してください。
うちの場合は・・・
自分のGoogle+URL=https://profiles.google.com/115475401629898462363/
著者名=Fuka
にしてあります。
Google+は自分のプロフィールページのURLです。
構造化エラーが発生したページのテンプレートに追加
※必ず<div id=”primary” class=”site-content”>…</div><article id=”post-<?php the_ID(); ?>” <?php post_class(); ?>>の間に入れましょう。
<?php authoranddate(); ?>
ざっと説明をしますと、上記のpost_class();は、結果として「class=”hentry”」を含んだクラスを出力します)
たとえば・・・
<article id=”post-287″ class=”post-287 post type-post status-publish format-standard has-post-thumbnail hentry category-dqb tag-dqb”>
こんな風にです。
そしてhentryで囲われたタグの中には「entry-title」と「author」と「updated」を含まなくてはならないというルールがあります。
そのルールを満たしていないために検出されるエラーが構造化データエラーです。
cssに追加
.authoranddate{ text-align: right; color:#888; font-size: 10px; } .authoranddate a:visited{ color:#888; } .authoranddate a{ text-decoration:none; } .authoranddate a:hover{ text-decoration:underline; }
上記を追加すると、こんな感じに表示されると思います。
おしまい
「autherがありません」と「updatedがありません」は簡単に言うと著者と更新(公開)日をはっきりさせなさいということなので、全てのページにこの一行を表示させることで対応。
もちろん見た目に影響があるものなので、もうちょっと別の方法を・・・という方もいらっしゃるかと思いますが^^;
ただ著者はともかく、ページの公開日と更新日が書いてあってくれるのは訪問者側としても助かるかなとv
・・・だた私も経験があるのですが「こうすれば直ります!」は環境によって直らないことも多いです。
実際私もこの方法に行き着くまでいくつものサイトをたどりましたが、結構直らなかった;
なのでこの方法で直らなかったら、すぱっとこの方法はあきらめて他の方法を探したほうが賢明かも^^;
いつか自分にあった解決方法が見つかりますよ!
ただこの修正って実際にGoogleSearchConsoleに反映されるまでに時間がね・・・;