esc_url():リンクや画像の URL をエスケープする(WordPress)

href や src に出す URL を、安全な形にして返します。javascript: のような危ない書き方の URL は、空の文字になります。

書き方

esc_url( string $url, ?string[] $protocols = null ): string
  • $url:URL
  • $protocols(省略できる):許す書き方(array( 'https' ) など)。省略すると http・https・mailto・tel などを許します。

使い方の例

$link = get_post_meta( get_the_ID(), 'shop_url', true );
echo '<a href="' . esc_url( $link ) . '">お店のサイト</a>';

// https だけ許す
echo esc_url( $link, array( 'https' ) );

よくある間違い

  • リダイレクトや DB に保存するときに使う:esc_url() は画面に出すための形(& を &#038; に変える)です。保存やリダイレクトには sanitize_url()(前の名前は esc_url_raw())を使います。
  • esc_html() を URL に使う。危ない URL が外れません。
  • 空の文字が返ってきたときの見た目(リンク先がないリンク)を考えていない。必要なら空のときはリンクにしない分け方を足します。

関連する関数

  • sanitize_url():保存・リダイレクト用の URL
  • esc_html()・esc_attr()
  • home_url():サイトの URL を作る

逆引きリファレンスの一覧へ

サイドバー

よく使うカスタマイズ

最近の記事

  1. Fstyle Final Output Replacer のルールの一覧(generator タグを消す 2 つのルール)

Profile

PAGE TOP