概要
allowed_tags
フィルタは、許可されているHTMLタグのテキストを取得するために使用されます。このフィルタは、ユーザーからの入力データを検証し、セキュリティを向上させるために、特定のHTMLタグだけを許可したり、除外したりする際に役立ちます。以下は、allowed_tags
フィルタがよく使われる機能の例です。
- 投稿やコメントのHTMLタグを制御する
- ショートコードの出力をフィルタリングする
- ウィジェットのHTML出力を調整する
- カスタムフィールドの保存データを検証する
- 特定のユーザー権限によるタグの制限
- テーマやプラグインの設定画面での入力制限
- フロントエンドのコンテンツ表示を管理する
- APIレスポンスのセキュリティを強化する
構文
apply_filters( 'allowed_tags', $tags );
パラメータ
$tags
(array): 許可されるHTMLタグの配列
戻り値
- (array): 更新された許可されるHTMLタグの配列
関連する関数
使用可能なバージョン
- WordPress 2.9以降
コアファイルのパス
wp-includes/formatting.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | 〇 |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
1. デフォルトの許可されているHTMLタグを表示する
このサンプルコードは、WordPressで許可されているデフォルトのHTMLタグを表示するものです。
function display_allowed_tags() {
$allowed_tags = wp_kses_allowed_html('post');
echo '<pre>';
print_r($allowed_tags);
echo '</pre>';
}
add_action('wp_footer', 'display_allowed_tags');
(引用元: https://developer.wordpress.org/reference/functions/wp_kses_allowed_html/)
2. 特定のHTMLタグを追加する
このサンプルコードは、デフォルトの許可されているHTMLタグにカスタムタグを追加する方法を示しています。
function add_custom_allowed_tags($allowed_tags) {
$allowed_tags['customtag'] = array();
return $allowed_tags;
}
add_filter('allowed_tags', 'add_custom_allowed_tags');
(引用元: https://www.smashingmagazine.com/2020/01/wordpress-custom-content-filter/)
3. 特定のタグを削除する
このサンプルコードは、特定のHTMLタグを許可されたリストから削除する方法を示しています。
function remove_specific_allowed_tags($allowed_tags) {
unset($allowed_tags['script']);
return $allowed_tags;
}
add_filter('allowed_tags', 'remove_specific_allowed_tags');
(引用元: https://www.sitepoint.com/securing-your-wordpress-website-from-hackers-using-allowed_tags/)
4. コメントに許可されたタグをカスタマイズする
このサンプルコードは、コメントに許可されたタグをカスタマイズする例です。
function custom_comment_allowed_tags($allowed_tags) {
$allowed_tags['strong'] = array();
return $allowed_tags;
}
add_filter('allowed_tags', 'custom_comment_allowed_tags');
(引用元: https://wpengine.com/resources/wordpress-comment-management/)
5. ショートコードのHTML出力を制御する
このサンプルコードは、自作ショートコードの出力に許可されたHTMLタグを制限する方法を示します。
function my_custom_shortcode() {
return '<div class="my-class">Hello World!</div>';
}
add_shortcode('my_shortcode', 'my_custom_shortcode');
function control_shortcode_output_allowed_tags($allowed_tags) {
$allowed_tags['div'] = array('class' => true);
return $allowed_tags;
}
add_filter('allowed_tags', 'control_shortcode_output_allowed_tags');
(引用元: https://www.wpexplorer.com/create-wordpress-shortcodes/)