説明
the_title_attribute() は、投稿のタイトルを、HTMLの属性値(title や alt など)の中で使えるように、エスケープして出力する関数です。
基本構文
the_title_attribute( string|array $args = '' ): void|string|null
引数
before:タイトルの前に付ける文字列after:タイトルの後に付ける文字列echo:trueで出力、falseで戻り値として返す(既定はtrue)post:投稿のIDまたはオブジェクト(省略すると、現在の投稿)
戻り値
echo が true(既定)のときは、出力のみ。false のときは、文字列を返します。
使い方(サンプル)
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php the_title(); ?>
</a>
注意点
- HTMLのタグは取り除かれ、属性値として使える形にエスケープされます。
- ループの中で使います。
実務での使いどころ
title属性やalt属性に、投稿のタイトルを入れるとき。- リンクの
aria-labelに、タイトルを入れるとき。
よくあるミスと対処
the_title()を属性値に使い、タイトルの中の引用符やタグで、HTMLが壊れる。- 値として使いたいのに、
echoをfalseにしておらず、その場に出力されてしまう。
NG例
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"> <!-- タイトルに引用符があると、壊れる -->
OK例
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
使い分け早見表
| 関数 | 特徴 |
|---|---|
the_title_attribute() |
属性値用にエスケープして出力する |
the_title() |
本文中に出力する(HTMLを含み得る) |
get_the_title() |
タイトルを、文字列として取得する |
関連項目
公式リファレンス:the_title_attribute() | WordPress Developer Resources

コメント