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

ブログの引越しの最中、

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

「テーマ内の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そのものの問題ではないと思われます。

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

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

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

コメントをどうぞ

メールアドレス (必須・公開されません)
コメント本文

  • スパム・迷惑コメント投稿防止のため、メールアドレスの入力が必須ですが、公開はされません。何卒ご協力のほどお願いいたします。
  • 投稿いただいたコメントは管理者のチェック後掲載しておりますので、即時には反映されません。
  • 記載内容に関する批判や間違いの指摘などはそのまま掲載する方針ですが、投稿内容と無関係な誹謗中傷、一方的な罵詈雑言の場合は削除させていただく可能性があります。
  • 通常業務の合間にコメントチェックをしておりますので、すべてのコメントへのお返事が出来ない場合もございます。あらかじめご了承ください。
  • 管理人個人への連絡等は、コメント欄ではなくコンタクトフォームをご利用ください。

今年もスタッフしました!

書籍を執筆しました

WordPress 標準デザイン講座【Version 4.x対応】


翔泳社さんより、2015/02/27発売です。

寄付歓迎(・ω<)☆

当ブログの記事があなたの役に立ったら、気が向いたらでいいのでドネーションいただけると更新の励みになります!
気が向いた方はこちらから

ブログ内検索