WordPressで管理画面「プロフィール情報」にHTML入力を許可したい
投稿日:2017年06月15日
お疲れ様です、ナガです。
先日、WordPress案件で管理画面の「プロフィール情報」に外部サイトへのリンクを貼る要件が発生したのでメモ。
管理画面の「プロフィール情報」はデフォルトで a
タグ自体は使えるんですが、 target
属性にフィルターが掛かっていて出力されません。
target
属性を出力するにはテーマディレクトリ内の functions.php
に、下記を記述します。
<?php
/* /wp-includes/kses.php */
// functions.php
remove_filter('pre_user_description', 'wp_filter_kses');
1
2
3
4
2
3
4
これで「プロフィール情報」にHTMLタグが使用できるようになります。
ちなみにデフォルトで「プロフィール情報」に使用できるタグ及び属性は下記です。
ブロック要素は blockquote
以外、ほぼほぼ使えないみたいですね。
※a[rel]
は、 wp_kses_allowed_html
関数内で追加されます。
<?php
/* /wp-includes/kses.php */
$allowedtags = array(
'a' => array(
'href' => true,
'title' => true,
'rel' => true,
),
'abbr' => array(
'title' => true,
),
'acronym' => array(
'title' => true,
),
'b' => array(),
'blockquote' => array(
'cite' => true,
),
'cite' => array(),
'code' => array(),
'del' => array(
'datetime' => true,
),
'em' => array(),
'i' => array(),
'q' => array(
'cite' => true,
),
's' => array(),
'strike' => array(),
'strong' => array(),
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
著者のウェブサイトだけであれば、プロフィール管理画面の「ウェブサイト」から値を取得してあげればよかったのですが、デザイン的にそういう場所もなく、「プロフィール情報」にまとめて入力するという仕様になりました。
以上です。