【Microdata】WPテーマの構造化エラーを修正する方法

WordPressのテーマごとには、あらかじめ制作者がコーディングしたMicrodataの記述が見られます。

ThemesによってitemtypeのBlog,Article,blogpost,articleBodyが入り交ざっており、構造化ツールを使うとエラーがたくさん出てどこを修正していいのかさっぱりわかりません。

そのitemtypeは本当に必要なの?

BlogとArticleは両方入れても問題はないですが、BlogとArticleの両方にauthorなどの必須プロパティをいれなくてはなりません。

それぞれにコピペすればいいですが、厄介なのがhtmlタグにitemtypeが入力されている場合です。
例えば<html itemtype=”http://schema.org/WebSite”>でしたらエラーの対処はしやすいようですが、データタイプがArticleなどコーディングされていた場合、エラーの対処が難しいです。

headタグとbodyタグの外にタグを入れることができませんね。
htmlタグの入れ子はheadタグとbodyタグのみですから。

metaタグを使ってMicrodataを設定できますが、headタグ内のmetaタグはdescriptionなど限られています。

body内に記述すればいいと思われますが、入れ子が深くなり反応しません。文の構造もおかしくなりそうです。

htmlタグのphpをリセットしよう

htmlのデータタイプArticleが邪魔です。
エラーを解決できず、そもそもデータが重複して整理できていません。

まず最初の作業は、自分のサイトから個別のページを右クリックしソース表示しました。

<html
lang=”ja”
itemscope
itemtype=”http://schema.org/Article”>

一行目にArticleがあり、SerachConsoleを見ると、こいつがずっとエラー表示していました。

 

しかしheader.phpを見ると

<html <?php language_attributes(); ?>>

しかありません。itemtypeは?

「language_attributes();」は<html>タグの言語属性を表示する関数のことで「lang=”ja”」だから違うだろう。

 

と、思っていたのですが、試しに「language_attributes();」を消すと、Microdataも消えていました。

言語属性もlang=”ja”と直接入れなおせばよく、「language_attributes();」でわざわざサーバーを経由しなくてもいいだろうという理由で削除しました。

ひとまずhtmlタグにはMicrodataを入れずにbodyタグからスニペットしていこうと思います。

ブログですが、記事としても扱えるのでArticleでもいいですね。
私はBlogのままでcotent部分に「itemprop=”mainEntity”」を入れておきました。

(Visited 72 times, 1 visits today)

Leave a Reply

Your email address will not be published. Required fields are marked *