WordPressで管理画面「プロフィール情報」にHTML入力を許可したい

投稿日:2017年06月15日

Tags: php メモ WordPress

お疲れ様です、ナガです。

先日、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

これで「プロフィール情報」に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

著者のウェブサイトだけであれば、プロフィール管理画面の「ウェブサイト」から値を取得してあげればよかったのですが、デザイン的にそういう場所もなく、「プロフィール情報」にまとめて入力するという仕様になりました。

以上です。

  • シェア:

Last Updated: 2019-9-9 21:37:59