esc_url_raw() の使い方|説明・引数・注意点

説明

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

コメント

タイトルとURLをコピーしました