「構造化データエラー対策でWordPressのpost_class記述を消そう」って記事を読んだので、あえて消さずに対策する実験【前編】

「構造化データエラー対策でWordPressのpost_class記述を消そう」って記事を読んだので、あえて消さずに対策する実験【前編】

2014年1月28日

ブログの引越しの最中、

という記事がたまたま流れてきて目についたので、何のことかと思い見てみたところ、
解決方法が

「テーマ内のpost_class()関数を消す」

というものでした。
なんだせっかく提供してくれてる情報を消しちゃうのかぁと思ったりしました。

あまりこのへんのことに長けていない方、Web制作者ではない一般の方ならこの対応がシンプルでわかりやすいと思いますが、せっかくネタ元の方が「SEOに強いテーマ」の配布者ということで、どうせなら消すのでなくちゃんと必要な記述を足す方向で対応できたらいいんじゃないかという前向きなアンサー記事です。
どうぞよしなに。

※むしろあの記事を読んで、逆に「構造化の記述なんか書いた覚えないのに、post_class入れるだけでそこまでやってくれるんだ!WordPressすげー!できる子!」って思った私はもうかなり盲目的だと思いますね。。。

さあ実験だ

ということでこのブログを実験台にしたいところなんですが、このブログは2010年に作ってから絶賛メンテナンス停止中の自作テーマを使っています。
そもそもpost_classを入れてない+DTDがXHTML1.0で、HTML5ではないという致命的な問題があります。

とはいえテーマ作りなおす時間もないので、ここは同様の現象の出ている別のサイトを実験台にさせてもらおう!

というわけで、
自作テーマ&DTDがHTML5&post_class使ってる&実稼働してる&ウェブマスターツールの権限がある&売上や収益を左右されない&公表しても問題ない案件で試してみたいと思います。

ncuhum-320x269そんな都合のいいサイトが………1つありました。

私の母校の同窓会サイトに実験台になってもらいます。

ウェブマスターツールのアラートを確認

たしかに、ウェブマスターツールの構造化データ > hentry(マークアップ: microformats.org)の欄を見ると

microfirmats_test02

author がありません
entry-title がありません
updated がありません

のアラートが出ています。
それ以外は何も意識してなくても、このように勝手に認識してくれているんですね。
microfirmats_test01

テーマ側の編集

今回は必要最低限の編集でどこまで対応できるかという実験なので、アラートが出ている3つの項目にclassを足すだけにします。
itemscope itemtype itemprop属性などは足さずに、しばらく様子を見ます。
(※注記:itemscopeとかはmicroformatsじゃなくてmicrodataの書き方ですね)

ループ部分の記述変更箇所(不要な部分は省略)

<?php if(have_posts()): while(have_posts()): the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h1><?php the_title(); ?></h1>
<p class="postinfo”>掲載日:<?php the_time('Y年n月j日(D)'); ?>|カテゴリー: <?php the_category(', ') ?><?php the_tags('|タグ: ', ', ', ''); ?></p>
<?php the_content(); ?>
</article>
<?php endwhile; endif; ?>


※見た目を考え記述順や場所は多少変えてます

<?php if(have_posts()): while(have_posts()): the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h1 class="entry-title"><?php the_title(); ?></h1>
<p class="postinfo”>掲載日:<span class="published"><?php the_time('Y年n月j日(D)'); ?></span>|カテゴリー: <?php the_category(', ') ?></p>
<?php the_content(); ?>
<p class="postinfo"><span class="author">名古屋市立大学人文社会学部同窓会</span>による掲載|最終更新日:<span class="updated"><?php the_modified_time('Y年n月j日(D) H:i'); ?></span><?php the_tags('|タグ: ', ', ', ''); ?><p>
</article>
<?php endwhile; endif; ?>

掲載日と更新日は、なんとなくtime要素で組んだりdatetime属性をつけたりしたいところですが、今回は実験なのでやめておきます。
authorはWordPressのthe_authorを使って出したい気もしますし、リレーエッセイのページは元原稿を書いてくれた方をauthor扱いにすべきという気もしますが、今回は実験n(ry

また、固定ページは同様の記述でpost_class()が入っていてもアラートが出ていなかったので、今回は変更していません。
たまたま出ていなかっただけなのか、投稿と固定ページでGoogle側が扱いを分けているのか、自信がなかったのでこの点もそのまま様子を見ます。(個人的には後者だと予測)

※同日追記
post_classを入れてあっても、Twenty Fourteenなどのデフォルトテーマなどでは問題ないということなので、やはりpost_classそのものの問題ではないと思われます。

さて前編はここまでですが、変化が見えたら中編・後編としてご報告したいと思います。

もっと突き詰めたい方向けの参考サイト

興味のある方、時間的余裕のある方は下記参考サイトをもとに、もっとがっつり構造化マークアップしてみましょう。