概要
sanitize_bookmark_field
フィルタは、WordPress におけるブックマーク(リンク情報)の保存や更新時に、リンク情報の要素値をサニタイズするための機能を提供します。これにより、ユーザーが入力したデータを安全な形式に変換し、データベースへの不正な入力やセキュリティ上の脅威を防ぎます。主に次のような機能を実装する際によく使われます。
- リンクのタイトルを整形する
- リンクの URL を検証する
- リンクの説明文をクリーンアップする
- タグの入力内容を整形する
- リンクのオプション値を検証する
- リンクのカスタムフィールドをサニタイズする
- ユーザーが入力した情報の悪意のあるコードを排除する
- データベースに保存する前に情報をクリーンにする
構文
add_filter('sanitize_bookmark_field', 'callback_function', 10, 2);
パラメータ
$value
(string): サニタイズされるリンクのフィールドの値。$field
(string): サニタイズされているフィールドの名前(例:URL、タイトルなど)。
戻り値
- string: サニタイズ後の値が返されます。
関連する関数
https://refwp.com/?titleonly=1&s=sanitize_bookmark_field
使用可能なバージョン
- 初版から使用可能で、特定のバージョンで非推奨又は削除された記録はありません。
コアファイルのパス
- wp-includes/bookmark.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
add_filter('sanitize_bookmark_field', function($value, $field) {
return sanitize_text_field($value);
}, 10, 2);
このサンプルは、リンク情報の全てのフィールドに対して、テキストとしてサニタイズするためのフィルタを追加します。sanitize_text_field
を使用して、悪意のあるコードを排除します。
サンプルコード 2
add_filter('sanitize_bookmark_field', function($value, $field) {
if ($field === 'link_url') {
return esc_url_raw($value);
}
return $value;
}, 10, 2);
このサンプルコードは、リンクの URL に対してのみ、正規の URL 形式にサニタイズしています。esc_url_raw
を使って無効な URL を防ぎます。
サンプルコード 3
add_filter('sanitize_bookmark_field', function($value, $field) {
if ($field === 'link_description') {
return sanitize_textarea_field($value);
}
return $value;
}, 10, 2);
このコードは、リンクの説明文フィールドに対して、テキストエリアとしてサニタイズします。sanitize_textarea_field
により、ユーザーが入力した内容が安全な形式になります。
サンプルコード 4
add_filter('sanitize_bookmark_field', function($value, $field) {
if ($field === 'link_title') {
return wp_strip_all_tags($value);
}
return $value;
}, 10, 2);
このサンプルコードは、リンクタイトルから全てのHTMLタグを削除する機能を提供します。これにより、ブックマークのタイトルがクリーンで安全な文字列になります。
サンプルコード 5
add_filter('sanitize_bookmark_field', function($value, $field) {
return trim($value);
}, 10, 2);
このコードは、全てのブックマークフィールド値の前後から空白を取り除く機能を持っています。trim
関数を利用して、無駄なスペースを除去します。