Blog スタッフブログ

PHP WEB制作

[WordPress]よく使うエスケープ関数

WordPress のテーマやプラグインで値を出力する際に、リンクの破損や XSS などのリスクを避けるためには、文脈に合ったエスケープが不可欠です。この記事では、特に使用頻度の高い esc_html()esc_url()役割使い分けのポイントを、実務でそのまま使える使用例と併せてご紹介します。

使い分け

esc_html() の役割

HTMLのテキストノード用のエスケープ関数です。

< > & " ' をエンティティ化して、本文・見出し・ボタンラベルなどを安全に表示します。

esc_url() の役割

URL属性(href/src/action など)用のエスケープ関数です。

画像やURLを設定する際に用います。

使用例

esc_html()(テキスト向け)

<!-- 見出しや本文など“テキスト”の出力 -->
<h1><?php echo esc_html( get_the_title() ); ?></h1>

<!-- サイト名をテキストとして表示 -->
<p class="site-name"><?php echo esc_html( get_bloginfo( 'name' ) ); ?></p>

<!-- URLを“テキストとして見せる” -->
<p class="url-text"><?php echo esc_html( get_permalink() ); ?></p>

esc_url()(URL属性向け)

<!-- あなたの例:リンク先(href)は URL属性=esc_url() -->
<a href="<?php echo esc_url( home_url() ); ?>"></a>

<!-- あなたの例:画像パス(src)は URL属性=esc_url() -->
<img src="<?php echo esc_url( get_template_directory_uri() . '/img/sample.svg' ); ?>" alt="画像">