毎回手動で行うのではなく、作者の略歴からあらゆる種類のリンクを自動的に削除したいです。ユーザーが[経歴情報]ボックスにリンクを追加した場合は、ブログに表示されたときに自動的に削除されます。
不要なタグを削除するために、pre_user_description
フックを使用することができます。これは、ユーザーを保存または更新する前にユーザーの説明をフィルター処理します。
これを行うには、 wp_kses
関数を使用します。これはホワイトリストを除くすべてのタグを削除します。
許可されたタグは連想配列として与えられるべきです。ここで、キーはタグの名前であり、値はこのタグの許可された属性の配列です。
たとえば、<strong>
タグと<em>
タグ(属性なし)と<h1>
タグ(おそらくclass
属性のみ)を許可するには、以下のようにします。
add_filter('pre_user_description','wpse_whitelist_tags_in_bio');
function wpse_whitelist_tags_in_bio($description){
$bio_allowed_tags = array(
'strong'=>array(),
'em'=>array(),
'h1' => array(
'class' => array (),
)
$description = wp_kses($description,$bio_allowed_tags);
return $description;
}
wp_kses
は高価な関数なので、データが保存され表示されないときにのみ実行されるべきです。すべてのHTMLタグを削除するには、 wp_strip_all_tags()
を使用します。