esc_url_raw()


WordPressの関数esc_url_raw()は、URLをエスケープして保存やデータ処理に適した形式に変換します。この関数は主にデータベースへの保存やフォーム送信時のURLデータの処理に使用されます。

構文

esc_url_raw( string $url, array|string $protocols = null )

引数の説明:

  • $url (string) — エスケープする対象のURL。
  • $protocols (array|string) — 許可するプロトコルのリスト(省略可能)。例: ['http', 'https']

例1: URLをエスケープして保存

次のコードは、URLをエスケープしてデータベースに保存する例です。

<?php
$raw_url = 'https://example.com/?query=テスト';
$safe_url = esc_url_raw( $raw_url );
update_option( 'custom_url_option', $safe_url );
?>

例2: 許可されたプロトコルを指定

許可されるプロトコルを指定してURLをエスケープします。

<?php
$raw_url = 'ftp://example.com/file.txt';
$safe_url = esc_url_raw( $raw_url, ['http', 'https'] );
// 許可されないプロトコルの場合は空文字列が返される
?>

例3: フォームデータを安全に処理

フォーム送信されたURLをエスケープして処理します。

<?php
if ( isset( $_POST['website_url'] ) ) {
    $website_url = esc_url_raw( $_POST['website_url'] );
    update_user_meta( get_current_user_id(), 'website_url', $website_url );
}
?>

例4: カスタム設定の初期化

カスタム設定の初期値をエスケープして保存します。

<?php
add_option( 'custom_homepage_url', esc_url_raw( 'https://example.com/home' ) );
?>

例5: リダイレクト用の安全なURLを生成

リダイレクト先URLをエスケープして使用します。

<?php
$redirect_url = esc_url_raw( $_GET['redirect_to'] );
wp_safe_redirect( $redirect_url );
exit;
?>

注意事項

  • esc_url_raw()は、データベース保存や内部処理用にURLをエスケープするための関数です。HTMLでの出力にはesc_url()を使用してください。
  • 許可されるプロトコルを指定しない場合、WordPressのデフォルトプロトコル(例: http, https, mailto)が使用されます。
  • ユーザーからの入力を直接処理する際には、この関数を使ってURLを必ずエスケープしてください。

関連機能: