概要
esc_url_raw
関数は、WordPress において URL 文字列をデータベース向けにクリーニングする際に使用されます。この関数は、特にデータベースに格納する前に、無効な文字やスキームを除去するために利用されます。以下は、この関数がよく使われる場面の例です。
- ユーザーが投稿した URL を保存する際
- オプション値に URL を保存する際
- カスタムフィールドに URL を保存する際
- デフォルトの設定に URL を指定する際
- プラグインやテーマの設定で URL 入力を受け付ける際
- データベースから出力する前に安全な URL に変換する際
- REST API のリクエストで URL を処理する際
- 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 開発者リファレンス)