WordPressでog:site_nameを動的に書き換えるのに沼った話

目次
なぜog:site_nameを動的に書き換えようと思ったか
こんにちは。廣瀬製紙株式会社 稼働率向上PJチームのA.Mです!
WordPressサイトを運営していて、og:site_nameを動的に変更したいと思うことがありました。
後述しますが、結局「それってあんまりよくないのでは?」と思い至り対応は見送りました。ですがその時の考えとしては「日本語版ページと英語版ページでog:site_nameの出力を切り替えたい」と思っておりました。
弊社のWebサイトには日本語版と英語版のページが存在しています。
基本的には日本語ページで「廣瀬製紙株式会社」と表示しているのですが、Googleの検索結果一覧でそのように日本語が見えてしまうと、いくら本文が英語であっても、英語圏の閲覧者にとっては敷居の高さを感じてしまう――もっと言うと、「うっ」と感じてしまうのではないかと思ったわけです。
なので、英語ページでは「Hirose Paper Mfg Co., Ltd.」というように英語にできたらいいなと考えました。
しかし、この実装を検討している途中で、ふと疑問が湧きました。「そもそも、同一ドメイン内でog:site_nameを変更するというのは、SEOの観点から適切なのだろうか?」と。
og:site_nameは、そのWebサイトのブランド名や会社名を示す重要なメタデータです。FacebookなどのSNSでシェアされた際に、コンテンツの出典元として表示される情報でもあります。同じドメインなのに、ページによって異なる名前が表示されるのは、ユーザーに混乱を与える可能性があるのではないか。
そんな懸念から、最終的にはog:site_nameの動的な切り替えは見送ることにしました。
とはいえ、この検討過程で得た知見は、何らかの形で誰かの参考になるかもしれません。そこで、今回の「沼った話」を記事にまとめることにしました。実装方法だけでなく、なぜ実装を見送ったのかという判断プロセスも含めて、みなさんの参考になれば幸いです。
管理画面の設定箇所がわからない
WordPressを使い始めてまだ日が浅い私にとって、まずog:site_nameの設定場所を見つけるのが一苦労でした。
現在勤めている廣瀬製紙株式会社に入社してからWordPressを初めて触り始め、まだ3ヶ月ほどしか経験がないため、管理画面のあちこちを探し回ることになってしまいました。
実は答えは意外なところにありました。
私たちのサイトではAll in One SEOというプラグインを導入していたのですが、
具体的には、管理画面から「All in One SEO」→「ソーシャルネットワーク」→「Facebook」タブと進んでいくと、og:site_nameの設定項目を見つけることができます。
正直なところ、「なぜFacebookの設定の中にあるんだろう?」と首をかしげましたが、OGPタグ自体がもともとFacebookが開発した仕様だったという背景があるようです。
ともあれ、設定場所が分かったことで、次のステップに進むことができました。PHPでの制御方法を調べる土台ができたというわけです。


PHPコードの記述方法
ではAll in One SEOプラグインでog:site_nameを動的に変更するためのPHPコードについてご紹介します。
該当箇所の設定は、add_filter関数を使い、aioseo_facebook_tags というフィルターフックに対して操作をすることで可能なようです。
一例として、functions.phpに以下のようなコードを追加することで実現可能です。
add_filter('aioseo_facebook_tags', function ($meta) {
// 条件に応じて og:site_name を変更
if (is_page() && get_locale() == 'en_US') {
$meta['og:site_name'] = 'HIROSE PAPER MFG CO.,LTD.';
}
return $meta;
}, 20);
このコードでは、現在表示されているページの言語設定に応じてog:site_nameを切り替えています。
get_locale()関数を使用して言語を判定し、英語ページの場合は英語表記にするようにしています。日本語の場合は、デフォルトの設定が日本語で書かれているのでわざわざ指定する必要はありません。
もちろん、これは一例であり、実際の使用時には自社のサイトの構成に合わせて条件分岐を調整する必要があります。
また、この方法はAll in One SEOプラグインを使用していることが前提となりますので、他のSEOプラグインをお使いの場合は、それぞれのプラグインのドキュメントを参照して適切な方法を確認してください。
おわりに
今回はWordPressでAll In One SEOを使用している場合に、og:site_nameを動的に書き換える方法についてご紹介しました。
正直なところ、自分でもこの記事に需要があるのか甚だ疑問です(笑)。
og:site_nameは、そもそもサイトのブランドアイデンティティを示すものですから、1つのドメインでは統一しておくのが基本的な考え方だと思います。
ただなんらかの理由でog:site_nameの動的な切り替えを検討されている方もいらっしゃるかもしれません。そういった方々にとって、この記事が何かのヒントになれば幸いです。
もし実際にog:site_nameを動的に変更する必要が出てきた方がいらっしゃいましたら、その理由や用途を教えていただけると嬉しいです。
最後までお読みいただき、ありがとうございました。次回は、もう少し需要のある内容についてお届けできるよう頑張ります(笑)