web-dev-qa-db-ja.com

WordPressの略歴からリンクを自動的に削除する方法?

毎回手動で行うのではなく、作者の略歴からあらゆる種類のリンクを自動的に削除したいです。ユーザーが[経歴情報]ボックスにリンクを追加した場合は、ブログに表示されたときに自動的に削除されます。

1
Sahil Umatia

不要なタグを削除するために、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() を使用します。

2
Stephen Harris