the_title_attribute()

現在のタイトルをサニタイズして取得・表示する

the_title_attribute() は投稿のタイトルを取得・表示する時にサニタイズする WordPress のテンプレートタグです。タイトルに含まれるHTMLタグを削除したい場合によく使います。

【参考】サニタイズとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

the_title_attribute() はPHPの関数 esc_attr() および strip_tag() を使用してHTMLタグを取り除いています。もし the_title() を使用して同様のPHPコードを記述をしているなら、このテンプレートタグで代替できます。

構文と返り値

PHP
the_title_attribute( $args = '' )
the_title_attribute(タイトル属性の引数。クエリ文字列・連想配列で指定可能);

【返り値】引数 ‘echo’ が「true」の場合は何も返さず、「false」の場合はタイトル。

ループ内で使用。

パラメーター

$argsattay | string任意
タイトル属性の引数。
【初期値】 なし(デフォルトで設定されている引数はソースコードを参照)

【$args パラメーターの引数】

beforestring
タイトルの前に追加するテキスト。
afterstring
タイトルの後ろに追加するテキスト。
echobool
タイトルを出力するか値を返すだけか。
【初期値】true(出力)
postWP_Post
タイトルを取得する投稿オプジェクトまたはID。初期値は現在の投稿。

パラメーターを指定する際はクエリ文字列タイプでの記述も可能で「&」でつなげて一気に書くことができます。クエリ文字列での指定の場合、 false なら echo=0、true なら echo=1 といった数字での指定になります。

PHP
<?php the_title_attribute('before=タイトル:&after=&echo=1'); ?>

連想配列の場合は array() の記述もお忘れなく。

PHP
<?php the_title_attribute(array('before' => 'タイトル:' , 'after' => '' , 'echo' => true)); ?>

パラメーターで文字列を指定する際HTMLタグを入れても削除されます。

the_title との違いと使い分け方

the_title_attribute()the_title() とほぼ同じように機能しますが、HTMLタグを出力するかどうかの違いがあるので、使い分けが必要な場合もあります。

例えば以下のようにページタイトルに改行やテキストのスタイルをつけるために、brタグやspanタグなどつけた場合。

タイトルに改行をつける<br>ここで<span style="color: blue;">改行</span>する

このタイトルを表示させる際に the_title() を使用すると、改行や指定したスタイルが出力されます。

しかし特定の場所ではこれらをなくしたいこともあると思います。
またページへのリンクを設定するaタグのtitle属性にタイトル名を使用したり、imgタグのalt属性につけたい場合もあると思います。HTMLタグの属性にタイトルを設定する場合も <br> といったHTMLタグは取り除いておきたいところです。

このような時には the_title() を使って別途HTMLを削除するためのコードを記述するより the_title_attribute() を使った方が簡単です。どこにそのタイトルを使用するのか、どのような表示をさせたいかによって使い分けていきましょう。

PHP
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute([ 'before'=>'記事:', 'after' => 'へのリンク' ]); ?>">
	<?php the_title(); ?>
</a>

コード Reference 一覧へ