説明
esc_url_raw() は、URLをデータベース保存用などに整形する関数です。esc_url() と違い、& などをHTML実体参照に変換しません。
基本構文
esc_url_raw( string $url, string[] $protocols = null ): string
引数
$url:URL$protocols:許可するプロトコル
戻り値
整形したURL。
使い方(サンプル)
$url = esc_url_raw( $input );
注意点
- 画面に出力するときは
esc_url()、保存やwp_remote_get()に渡すときはesc_url_raw()を使います。
実務での使いどころ
- URLを、データベースに保存するとき。
- リダイレクト先のURLなど、HTMLに出力しないURLを、整えるとき。
よくあるミスと対処
- 保存するURLに、
esc_url()を使っている。esc_url()は、表示用で、&を&に変える。 - HTMLに出力するときに、この関数を使っている。出力には、
esc_url()を使う。 - 入力値を、
wp_unslash()していない。
NG例
update_option( 'my_url', esc_url( $url ) ); // & が、& に変わって保存される
OK例
update_option( 'my_url', esc_url_raw( wp_unslash( $url ) ) );
使い分け早見表
| 場面 | 使う関数 |
|---|---|
| URLを、保存・内部で使う | esc_url_raw() |
| URLを、HTMLに出力する | esc_url() |
| リダイレクト先のURL | wp_safe_redirect()(内部でサニタイズされる) |
関連項目
esc_url()、sanitize_text_field()
公式リファレンス:esc_url_raw() | Function | WordPress Developer Resources

コメント