titleタグ内の余計なタグを削除する

電脳備忘録

デザインの都合上、記事タイトルを改行表示させたい場合があります。brタグで改行させるわけですが、これだとtitleタグにもbr付きで表示されてしまいます。 これだとSEO的によろしくないので、改行タグを削除して表示するようにしました。

下記の例ではACFで設定したカスタムフィールド「entry-title」内のbrタグやら改行を削除してtitleとして設定しています。

<title>
<?php
$str = get_field('entry-title');
$str = str_replace(array("\r\n", "\r", "\n"), "", $str);//改行削除
echo strip_tags( $str, '<br />');//改行タグ削除
?> | <?php bloginfo( 'name' ); ?></title>

PC閲覧時は改行するけどスマートフォン閲覧時は改行させたくない場合、spanタグで囲っておいて画面サイズに応じてブロック表示することで対応するわけですが、この場合titleタグにspan付きで表示されてしまいます。というわけでspanタグを削除して表示するようにしました。

<title><?php
$subject= get_field('entry-title');
$table = array(
'<span>'=>'',
'</span>'=>''
);
$search = array_keys( $table);
$replace = array_values( $table);
echo str_replace($search,$replace,$subject);
?> | <?php bloginfo( 'name' ); ?></title>

よし(妥協)。

広告

ブログの維持費に充てるでございます・・・。