WordPress : 入力した ruby タグが消えてしまうので何とかする。

WordPressのマルチサイトで、
  • ネットワーク管理者以外のユーザが、
  • 投稿画面の HTMLモード(3.5からは "テキスト" に変わった?)で、
  • <ruby>タグとか<rb>、<rt>、<rp> とかを入力しても、
  • 投稿を保存した時点で、それらが綺麗さっぱり削除されてしまう。
…と、そんな現象に気づいた。

うん、謎仕様。

で、いろいろ調べてみたら、こうすれば良いらしい。

方法1:wp-includes/kses.php を編集。
kses.phpを開いて、変数 $allowedposttags に、ruby, rb, rt, rp を追加してやる。

$allowedposttags = array(
  'address' =>  array(),
  ....
  'var' => array(),
  'ruby' => array(),
  'rb' => array(),
  'rt' => array(),
  'rp' => array()
);

方法2:現在使用しているテーマの functions.php に以下のようなフィルタを追加。
add_filter('content_save_pre','set_allowedposttags');

function set_allowedposttags($content){
  global $allowedposttags;
  $allowedposttags['ruby'] = array();
  $allowedposttags['rb'] = array();
  $allowedposttags['rt'] = array();
  $allowedposttags['rp'] = array();
  return $content;
}
これで大丈夫になる筈。

 → 参考記事

ただし、HTML5流の書式では、rbタグというのが廃止されている / される予定なので、テキストモード→ビジュアルモードの切り替えをしたりすると rbタグは削除されます。

 → ルビタグ周りのことについて、詳しくはこちらの記事もどうぞ。

どちらにしても、WordPress本体やテーマをアップデートしたら変更は消えてしまうのでアレだけれども。子テーマを作って対応しましょうか。

カテゴリ: