東京都府中市、九段下のWEB制作会社Maromaroのブログです

2022.10.03

taka

Yoast SEO でタイトルとディスクリプションを書き換える方法(OGも)

こんにちは
MaromaroのTakaです。

今回はWordPressのプラグイン「Yoast SEO」でページのタイトルとディスクリプションを書き換える方法を記載します。
基本的にはTDKを手軽に変更できるプラグインですが、
ページ単位やカスタム投稿等で自由に変化を加えたい場合があると思います。
functions.phpを利用し、任意の値に変更出来るようにする方法をご紹介します。

やり方

まず初めに「Yoast SEO」プラグインをインストールしてください。

インストールしたら設定(検索での見え方)から↓部分のタイトル書き換えを必ず有効にしてください。

次にfunctions.phpに以下を記載します。
タイトルとディスクリプションを指定したものに書き換えが出来ます。
通常・OG・Twitterに対して発動します。

function my_wpseo_title($title) { 
  if (is_single()) {
    //投稿ページの場合(記事・固定)はタイトルとサイトタイトルを合わせたものを表示
		$title = my_get_the_title().'|'.get_bloginfo(); 
	}else{
    //それ以外は指定のものに
    $title = 'hogehoge'.'|'.get_bloginfo(); 
  }
  
  return $title; 
} 
add_filter('wpseo_title', 'my_wpseo_title');
add_filter( 'wpseo_opengraph_title', 'my_wpseo_title');
add_filter( 'wpseo_twitter_title', 'my_wpseo_title');

function my_wpseo_desc($desc)
{ 
  $desc = 'hogehoge';
  return $desc;
}
add_filter( 'wpseo_metadesc',  'my_wpseo_desc');
add_filter( 'wpseo_opengraph_desc',  'my_wpseo_desc');
add_filter( 'wpseo_twitter_description',  'my_wpseo_desc');

恐らく↑のようにfunctions.phpに直接指定するパターンは中々ないと思いますが、
global変数などを駆使すれば個別での書き換えが可能です。
基本的には個別でカスタム投稿やアーカイブページなどで主に使うのではないかと思います。

下記のような記載になると思います。
※もっとスマートなやり方はあるかもしれません

■functions.php

function my_seo()
{
  function my_wpseo_title($title) { 
    global $title;
    return $title; 
  } 
  add_filter('wpseo_title', 'my_wpseo_title');
  add_filter( 'wpseo_opengraph_title', 'my_wpseo_title');
  add_filter( 'wpseo_twitter_title', 'my_wpseo_title');
  
  function my_wpseo_desc($desc)
  { 
    global $desc;
    return $desc;
  }
  add_filter( 'wpseo_metadesc',  'my_wpseo_desc');
  add_filter( 'wpseo_opengraph_desc',  'my_wpseo_desc');
  add_filter( 'wpseo_twitter_description',  'my_wpseo_desc');
}

■個別の表示用php
※get_header()より上に記載

global $title;
global $desc;
$title='hogehoge'.' | '.get_bloginfo();
$desc = "hogehoge";
my_seo();

 

以上Takaでした。