日別アーカイブ: 2014年5月15日

WordPressテーマ変更に伴う記事のルート見出しレベルの変動を吸収するプラグイン WP hn Convert

随分前に愚痴った、WordPressのテーマを変更すると記事のルート見出しレベルが変動し、過去記事資産が活かせないという問題。この問題がまだ根本的解決に至っておらず、古いWordPressサイトを新しいテーマに移行する際には常に悩まされている。
公式がTwenty Twelveを出してきて以降は、テーマ制作者の暗黙の了解として記事タイトルがh1、記事内で最もレベルの高い見出しがh2というように揃えてきているように思う。これは記事に対してHTML5のセマンティックを結びつける場合、記事部分で新しくセクショニングコンテンツ(article)を始めるというのが合理的だからであろう。あるいは、SEO対応を売りにするWordPressテーマなどでは、single.phpにおける最初のh1を記事タイトルに充てているため、不都合なく記事資産を共有できるようになっているのである。

the_content()をラッピングする方法

一方、記事を出力するタイミングで見出しにテキスト処理を噛ませるという方法があり、こちらはWP hn Convertというプラグインを配布されている方がいる
このプラグインを導入し、テーマ中のthe_content()の記述部分を全てthe_hn_converted_content(数字)とすると、数字で指定した分だけ見出しレベルを移動してくれる。たとえば記事タイトルをh2にして書かれたテーマをh1からにするには、the_hn_converted_content(-1)のようにすると、以下の見出しh3をh2、h4をh3というように全体的な見出しレベルに変動を与えてくれるのである。

でも根本的な解決ではない

このプラグインで対処することも可能なのだが、そうすると記事を書く側としてはルート見出しレベルをこれまで通りのレベルにし続けなければならない。
また、試していないので何とも言えないのだが、たとえばコードスニペット中に書かれたhtmlの見出しレベルにも適用されてしまうのではという危惧もある。通常の日記ブログなどでは問題が無いだろうが、技術系のブログにとっては大きな問題となってしまうのではないか。
ということで、上手い解決法がないかと依然悩んでいる。データベースを直接たたいて置換というのも、怖い話だなあ。