WordPressでタイトルから不要な文字を置換、削除する方法

wordpress

WordPressの初期設定ではページの投稿のタイトルが、そのままtitleタグに設定されます。
ただ極稀にページの投稿のタイトルとtitleタグを別々の表示にしたいということがありました。

自分の事例でいうと、あるお店のホームページをWordPressで管理していていました。
何店舗かあったので、カスタム投稿タイプで各店舗ページを作っていて、その時タイトルを

「◯◯◯カフェ – 大阪店」

といった感じでつけてたんですが、お客様側の要望で店舗の詳細ページ(要はsingle.php)側の「◯◯◯カフェ」を削除してほしいという要望がありました。

全部のページが「◯◯◯カフェ」だったらheader.phpの<title>をいじったら話が早かったんですが、「◯◯◯かふぇ」「カフェ・◯◯◯」といった感じで微妙な違いのが何パターンかあったので、その時に使った方法を紹介します。

<?php
   $str = get_the_title($ID); //置換前
   $search = array('カフェ','カフェ・','かふぇ'); //置換対象候補
   $new_str = str_replace($search, '置換後', $str);
   print $new_str;
?>

4行目のstr_replaceは置換の意味で「$str内の文字列から$searchを探し出して、置換後の文字と置き換える」といったことを行っています。
単純に$searchの文字列を消したいだけなら‘置換後’を空にしたらOKです。