the_title_attribute()

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

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

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

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

使い方

【構文】

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

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

ループ内で使用。

パラメーター

  • $args (array | string)オプション

    タイトル属性の引数。

    【初期値】 なし(デフォルトで設定されている引数はソースコードを参照)

    • before (string)

      タイトルの前に追加するテキスト。

    • after (string)

      タイトルの後ろに追加するテキスト。

    • echo (bool)

      タイトルを出力するか値を返すだけか。初期値はtrue。

      • true : 取得して出力。

      • false : 値を返すのみ。

    • post (WP_Post)

      タイトルを取得する投稿オプジェクトまたはID。初期値は現在の投稿。

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

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

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

<?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() を使った方が簡単です。どこにそのタイトルを使用するのか、どのような表示をさせたいかによって使い分けていきましょう。

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

公式コードファイルとドキュメントはこちら

/wp-includes/post-template.php

the_title_attribute() - WordPress.org

コード Reference 一覧へ

TOPへ