WordPressの「rel=”category tag”」を修正する

2013年6月21日

夏至ゲシげしの金曜日~((*’∀’)ノ{Hello!
はい、早速前回の続きでValidatorエラーの2つ目を見ていきますよ。

a要素のrel属性

エラーが出ているのはこの部分。

記事の所属カテゴリーが書かれている部分ですね。

Bad value category tag for attribute rel on element a: The string category is not a registered keyword or absolute URL.

rel属性に「category」というキーワードは登録されていない、と。
該当するソース部分は下記の2行目、「rel=”category tag”」。

トップページで表示されている記事の数だけ、このカテゴリーに関するエラーが出ていました。
なんでよ、また廃止?と思ったら逆でした。

categoryはまだValidatorに反映されていない


(↑画像クリックで拡大します)
Markup Validation Serviceでエラーチェックをすると更に細かい説明文が見れます。大事な部分だけ訳すと…
rel要素の値にはHTMLの仕様書に準拠したリンクタイプを使用する必要があり、仕様書に載っていない場合はMicroformats wikiのリンクタイプを参照すること。Microformats wikiへは誰でも登録することができる、とのこと。

「rel=”category tag”」については、tagはすでに仕様書に記載されていますが、categoryがありません。でもcategoryもMicroformats wikiには登録されていました。ということで新たに登録をする必要は無し。
じゃあなんでエラーになるのか?それはValidatorの最新バージョンのリリース日よりも、categoryが登録された日のほうが後だからでした(笑)

What’s New at The W3C Markup Validation Service: 2012-03-13 — 1.3 release
rel-category · Microformats Wiki: Revision as of 20:22, 30 July 2012

ということはValidatorが更新されればエラーは消えるのですが、今すぐにエラーを消すためにはphpを修正する必要があります。

Twenty Twelveを書き換える

category tagは「wp-includes/category-template.php」の中で設定されています。
163行目で
$rel = ( is_object( $wp_rewrite ) && $wp_rewrite->using_permalinks() ) ? 'rel="category tag"' : 'rel="category"';
ここを直せば一発ですが、直接編集は行わず、今回も子テーマを使います。初めてのfunctions.php。操作を間違えると恐ろしいことになるやつ…(笑)

functions.phpに追記する

ここでphpについて詳しくは書きません(というか書けません)。とりあえず新規で「functions.php」という名前のファイルを作成し、下記のように記述してください。
すでにファイルがある人は下記の2行目からを書き足せばOK。
「rel=”category tag”」は「rel=”tag”」に置換、「rel=”category”」の場合は削除させています。
UTF-8形式で保存したfunctions.phpを子テーマディレクトリにアップロードし、サイトのソースをもう1度見てみると…

エラーが消えました♪「rel=”tag”」に置き換わっています。

functions.phpファイルをいじるときはいくつか注意点があるのですが、長くなっちゃうので次回に回そうと思います∠(・`_´・ )
ちょっと来週忙しいのでどうなるかわかりませんが…


——————–

今日はSaaSesの飲み会なんですってよ奥様。
“男の娘(こ)”が来るらしいので見てくる!写真ここにアップしたら怒られるかな(笑)