post_class() が不正な CSS クラス名を生成
-
2.7 から導入される予定の post_class() 関数がとんでもない仕様であることが判明しました。
新機能として、投稿に割り当てられるカテゴリー/タグ名をもとにした CSS クラス名が付与されます。これによって、カテゴリーごとにデザインを変更するといったことが自在になります。
しかし、CSS クラス名はカテゴリー/タグスラッグをもとに生成されるため、日本語名だと、不正な CSS クラス名になってしまいます。例: 「携帯」カテゴリー → category-%e6%90%ba%e5%b8%af となる
しかし、CSS のクラス名は、[-_a-zA-Z0-9] と、ASCII 以外の Unicode 文字しか認められていません。% 記号は不可です。これでは CSS 違反となってしまいます。
とりあえずチケット8446を発行しました。ただ、妥当な解決案としては「スラッグではなくカテゴリー ID を使う」という方法しかなく、これは重大な機能変更となるため、フォーラムでも報告させていただきます。(バックスラッシュでエスケープするのは可能ですが、ユーザーから見ると使いにくいですよね)
これの修正が 2.8 とかに先送りされたりするようでは、「WordPress は I18N 軽視がひどい」ということで、真剣に「WordPress ME 復活」を検討せねばならないかもしれません……。(とはいえ、自作プラグインのメンテナンスがおいついてない現状で ME 2.7 を作るなんて時間がありませんが 😉
- トピック「post_class() が不正な CSS クラス名を生成」には新たに返信することはできません。