MoyaSystem

もやしです。

BuddyPressのプライベートメッセージで使えるHTMLタグを増やしたい

はじめに

あけましておめでとうございます。

やりたいこと

BuddyPressのプライベートメッセージ機能でdivタグを使えるようにしたい。標準ではdivタグが使えないので、Googleマップを表示するなどの便利な機能が使えないので不便。ただしBuddyPressのソースは触らずに自前プラグイン側で実現させたい。

書いた

define( 'BP_CUSTOM_TAGS', true); // カスタムタグの仕様を宣言
global $allowedposttags, $allowedtags, $allowedentitynames;

$allowedposttags = array(
    // BuddyPressの定義をコピー
);

$allowedtags = array(
	'a' => array(
		'href' => array (),
		'title' => array ()),
	'abbr' => array(
		'title' => array ()),
        // 略...

        // divタグの使用を許可
	'div' => array(
		'id' => array(),
		'name' => array()
		),
        // 略...
);

$allowedentitynames = array(
    // BuddyPressの定義をコピー
)

1行目でカスタムタグの使用を宣言する。この定数がfalseだとBuddyPressの標準カスタムタグが適用される。2行目で宣言されている3つのグローバル変数はタグのチェックに使われるもので、すべて必要。カスタマイズしないものであっても、それぞれBuddyPress内にあるfunctions.kses.phpの内容をコピーして自前プラグインに貼り付けて編集したほうがよい。そうしないとある変数は自前プラグイン、ほかの変数はWordPress標準の定義を使うことになりBuddyPressの設定が無視されてしまう。具体的な問題はわからないが避けたほうが無難、たぶん。
プライベートメッセージのタグチェックに使われるのは$allowedtagsなので、ここにdivタグの使用を許可する旨を追記すれば完了。