こんにちは!ウェブサバイバー運営のYeah-Manです!さて、今回は『Yoast SEO』です。
WordPressのSEO補助的プラグインといえば『All In One SEO Pack』ですが、こちらの『Yoast SEO』も使っている方、多いと思います。
今回はそんな『Yoast SEO』独自で用意されているフックを使って、カスタマイズする事例を4点紹介いたします!

お探しのものがあればぜひご参照ください!

Yoast SEOのディスクリプションをPHPから変更する

はじめにYoastSEOで設定しているディスクリプションをPHPから変更するカスタマイズ方法について紹介します。
ACFなどカスタムフィールドの値を組み合わせてオリジナルのディスクリプションを自動生成するなど、PHPプログラムを使ってなにかしらテンプレート生成して変更を加えるようなシチュエーションの時に使えます!

function custom_metadesc($metadesc)
{
	$desc = $metadesc;
	if ( is_singular('blog') ) {
		$site_name = get_bloginfo("name");

		global $post;
		$desc = get_field('meta_description', $post->ID);
		if ($desc ) {
			$desc = $desc . ' | ' . $site_name;
		}

	}
	return $desc;
}
add_filter('wpseo_metadesc', 'custom_metadesc');

 

仕組み的には単純で『wpseo_metadesc』というフックで引数の値がディスクリプションで返ってきます。これを変更してreturnしてあげるだけです。
お試しください!

Yoast SEOのtitleを変更する

次はタイトルです。SEO的にもまだまだ重要度の高いtitleタグですが、これもフックが用意されており、PHPから変更することができます。サンプルコードは以下です。

function custom_title($title) {
  if ( is_front_page() ) {
    return 'これはトップページ';
  }
  return $title;
}
add_filter( 'wpseo_title', 'custom_title' );

こちらはフック名が『wpseo_title』というフックになります。

OG設定のディスクリプションを変更する

Yoast SEOではOG設定も管理画面からテンプレートを使って登録することができますが、これもPHP側からフックを使って変更することができます。


//ogディスクリプション
function custom_opengraph_desc($metadesc)
{
	$desc = $metadesc;
	if ( is_singular('blog') ) {
		$site_name = get_bloginfo("name");

		global $post;
		$desc = get_field('meta_description', $post->ID);
		if ($desc ) {
			$desc = $desc . ' | ' . $site_name;
		}

	}
	return $desc;
}

add_filter('wpseo_opengraph_desc', 'custom_opengraph_desc');

はサンプルで紹介しているソースはほとんど変わりません。フックの名前にopenngraphとついているところに注目です。

OG設定のタイトルを変更

タイトルを変更してみましょう。


//ogタイトル
function custom_opengraph_title( $desc ) {
   if ( is_tax( "blog_category" ) ) {
   	$site_name = get_bloginfo( "name" );
   	$_pagetitle = "";
 		global $wp_query;
 		if ( $wp_query && $wp_query->queried_object ) {
 			$_pagetitle = $wp_query->queried_object->name;
 		}
 		$title = $_pagetitle . ' | ' . $site_name;
   }
   return $desc;
}
add_filter( 'wpseo_opengraph_title', 'custom_opengraph_title');

wp_queryを使って記事タイトルに調整を加えています。ごにょごにょしていますが、こちらもフック名にopengraphとついていることからわかりやすいかと思います。

Yoast SEOは他にもフックがたくさん。

他にもフックがありますが、また時間があるときにご紹介できれば!

以上、現場からでした〜!