ワードプレスのesc_url_raw関数の使用方法・解説

概要

esc_url_raw 関数は、WordPress において URL 文字列をデータベース向けにクリーニングする際に使用されます。この関数は、特にデータベースに格納する前に、無効な文字やスキームを除去するために利用されます。以下は、この関数がよく使われる場面の例です。

  1. ユーザーが投稿した URL を保存する際
  2. オプション値に URL を保存する際
  3. カスタムフィールドに URL を保存する際
  4. デフォルトの設定に URL を指定する際
  5. プラグインやテーマの設定で URL 入力を受け付ける際
  6. データベースから出力する前に安全な URL に変換する際
  7. REST API のリクエストで URL を処理する際
  8. URL が含まれるウィジェットやショートコードの出力時

構文

esc_url_raw( $url, $protocols );

パラメータ

  • $url (string) : クリーニングしたい URL。
  • $protocols (array|bool) : 使用を許可するプロトコルの配列。指定しない場合は、デフォルトのプロトコルが使用される。

戻り値

  • クリーニングされた URL の文字列が返されます。

関連する関数

使用可能なバージョン

  • esc_url_raw は、WordPress 1.5.0 以降で使用可能です。

コアファイルのパス

  • 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: 基本的な使用法

このコードは、ユーザーから取得した URL を安全な形式でクリーニングし、オプションに保存します。

$user_url = $_POST['user_url'];
$safe_url = esc_url_raw( $user_url );
update_option( 'my_custom_url', $safe_url );

(引用元:WordPress 開発者リファレンス)

サンプルコード 2: 設定フィールドでの使用

このサンプルコードは、設定ページに表示するために URL をクリーニングします。

function my_setting_callback() {
    $url = esc_url_raw( get_option( 'my_custom_url' ) );
    echo '<input type="text" name="my_custom_url" value="' . esc_attr( $url ) . '">';
}

(引用元:WordPress 開発者リファレンス)

サンプルコード 3: REST API のリクエスト処理

このコードは、REST API 経由で受信した URL をクリーニングします。

add_action( 'rest_api_init', function () {
    register_rest_route( 'myplugin/v1', '/submit', array(
        'methods' => 'POST',
        'callback' => function( $request ) {
            $url = esc_url_raw( $request['url'] );
            // 処理を続行...
        }
    ));
});

(引用元:WordPress 開発者リファレンス)

サンプルコード 4: URL チェック

このコードは、入力された URL が有効なものかどうか確認します。

$posted_url = $_POST['url'];
if ( $posted_url && filter_var( $posted_url, FILTER_VALIDATE_URL ) ) {
    $clean_url = esc_url_raw( $posted_url );
    // 処理を続ける...
}

(引用元:WordPress 開発者リファレンス)

サンプルコード 5: プラグインオプションの保存

プラグインオプションを管理する際に URL をクリーニングします。

function save_plugin_options() {
    if ( isset( $_POST['my_plugin_url'] ) ) {
        $url = esc_url_raw( $_POST['my_plugin_url'] );
        update_option( 'my_plugin_url', $url );
    }
}
add_action( 'admin_post_save_plugin_options', 'save_plugin_options' );

(引用元:WordPress 開発者リファレンス)

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


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