Daily Archives: 2011年8月11日

WordPressの投稿やコメントで使えるタグを追加する

WordPressの投稿やコメントでタグを使ったところ、タグが消されたり、属性が消されたりした経験はないだろうか? このような現象は、記事やコメントを保存した後や、ビジュアルエディターとHTMLエディターを切り替えた後に起こっているはずた。 これは、単に禁止されているタグや属性があるからなのだが、逆に言えばきちんと許可さえしてやれば削除されなくなる。 実は、WordPressでは、入力出来るタグや属性を制限する仕組みは2つある。 1つは、HTMLエディターでの制限で、ksesというフィルターによるもの。「/wp-includes/kses.php」での制限である。 この制限は、HTMLエディターを利用する投稿画面とコメント欄で有効であるが、管理者権限を持つものには適応されないので、管理者として記事を投稿し、コメントを書いているなら、そもそも制限はないので無視して良い。 もし何かの事情で許可したいなら「/wp-includes/kses.php」に記述されている配列にタグや属性を追加すれば良い。 投稿画面の場合は、 $allowedposttags = array( ‘address’ => array(), ‘a’ => array( ‘class’ => array (), ‘href’ => array (), ‘id’ => array (), ‘title’ => array (), ‘rel’ => array (), ‘rev’ => array (), ‘name’ => array (), ‘target’ => array()), ‘abbr’ => array( ‘class’ => array (), ‘title’ => array ()), にタグや属性を追加する。 コメント欄の場合は、 $allowedtags = array( ‘a’ => array( ‘href’ => array (), ‘title’ => array ()), ‘abbr’ => array( ‘title’ => array ()), ‘acronym’ => array( ‘title’ => array ()), ‘b’ => array(), に付け加えれば良い。 上記と同じような記述は、プラグインやfunctions.phpでも書くことが出来る。 私は、コメントで使えるタグを追加で許可する構文をプラグイン中で書いているので、それを参考にまとめておく。 function my_allowedtags_in_comments($data) { global $allowedtags; $allowedtags['pre'] = array( ‘name’=>array(), ‘class’=>array()); $allowedtags['script'] = array( ‘type’=>array(), ‘class’=>array()); … 続きを読む →

Posted in PHP, WordPress, ネット・PC | Tagged , , , , | Leave a comment