yoast seoプラグインを使用しているけど、プラグインで出力されるタイトルタグではなくて独自のタイトルタグをつけたい場合の方法を紹介します。
有名なプラグインだけありしっかり「apply_filter」が使用されていています。
なのでfilterフックを使用するだけで簡単に変更可能です。
「タイトルタグ」「twiiterタイトルタグ」「ogタイトルタグ」について変更する方法を紹介します。
それぞれのフックは以下の通りです。
- タイトルタグ・・・「wpseo_title」
- twitterタイトル・・・「wpseo_twitter_title」
- ogタイトル・・・「wpseo_opengraph_title」
どれも引数としてYoast側で作成されたタイトルが受け取れます。
そのタイトルを使用して変更する形でも良いですし、全く新しいタイトルを設定しても問題ありません。
クラスにしたコードは以下です。
class My_title {
public function __construct() {
add_filter( 'wpseo_title', [$this, 'my_title'] );
add_filter( 'wpseo_twitter_title', [$this, 'my_title'] );
add_filter( 'wpseo_opengraph_title', [$this, 'my_title'] );
}
/**
* Yoastフック用 タイトル変更
*
* @param string $title
* @return string
*/
public function my_title( $title ) {
if ( is_search() ) {
$title = 'new_title';
}
return $title;
}
}
上の例では 「タイトルタグ」「twiiterタイトルタグ」「ogタイトルタグ」 すべて同じ関数を適応していますが、異なるタイトルを使用したい場合は別々にしてください。
タイトルを代入するだけで済むのでとてもシンプルですね。