ワードプレスのsanitize_bookmark_fieldフィルタの使用方法・解説

概要

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 関数を利用して、無駄なスペースを除去します。

この関数について質問する


上の計算式の答えを入力してください