All in One SEO Packでアーカイブページにディスクリプションを入れようとして詰まった話

スポンサーリンク

All in One SEO Packでアーカイブページにディスクリプションを入れようとして詰まった話

 

WordPressでサイトを運営している場合に必ずといってもいいほど利用されているプラグイン『All in One SEO Pack』ですが、アーカイブページにディスクリプションなどのmetaタグを挿入しようとしたところ詰まってしまいました。

そこで、今回試してみた解決方法をご紹介します。

※ちょっと強引なので他に方法あったら教えてください…

スポンサーリンク

そもそもアーカイブページって?

そもそもアーカイブページって?

 

「All in One SEO Pack」でディスクリプションなどを挿入数方法を説明する前に、そもそも「アーカイブページ」とは何ぞやを軽く説明します。

 

アーカイブページとは、一覧ページのこと
「アーカイブ」と聞くと年代ごとのページだと思われがちですが、年代に限らず「カテゴリー別」「作者別」「日付別」「タグ別」「カスタム投稿タイプ別」といったように何かの一覧ページをしめします。

たとえば、

 

SEO記事一覧

このページは、当サイトの「SEO」というカテゴリーに属した記事一覧を表示するページです。

このページも「アーカイブページ」になります。

なぜアーカイブページにAll in One SEO Packが利かないのか?

なぜアーカイブページにAll in One SEO Packが利かないのか?

 

それもそのはず、アーカイブページは管理画面では操作できない「archive.php」で作成されています。

そのため、投稿・固定ページで行う「All in One SEO Pack」の設定ができません。

 

All in One SEO Pack設定画面

↑こういうやつ

 

さらに「All in One SEO Pack」はデフォルトでアーカイブページ」にディスクリプションなどのタグが埋め込まれない設定にっています。

一部のタグとタイトルは埋め込まれますが、ほとんどが埋め込まれません。(ソーシャルメディアも×

 

自動で埋め込まれない、かつ管理画面で設定できないため、PHPファイルを直接いじっていくしか方法はなさそうでした。

 

アーカイブページにディスクリプションなどを入れる方法

アーカイブページにディスクリプションなどを入れる方法

 

では、実際に私が試してみた方法をご紹介します。

 

条件分岐でアーカイブページのみにタグを入れる

 

とても単純な方法です。

header.phpのディスクリプションなどを挿入したい個所に

 

を挿入します。

 

例えば、

 

SEO記事一覧

 

この「SEO」カテゴリー一覧のページには以下のように設定します。

 

 

このように、ディスクリプションだけでなく「OGP(SNSで拡散されるときの設定)」もぶち込みます。

 

同じ設定を複数のアーカイブページに設定したい場合は、ifの中身を

is_post_type_archive( array( 'アーカイブページの投稿タイプ', 'アーカイブページの投稿タイプ' ) ) ;
のように変更してください。

問題点

 

この方法は、とても簡単ですが「header.php」が極端に肥大化してしまします。

 

そこで、私は「meta.php」というファイルを別に作成してそこに先ほどの処理を書き、「header.php」では「get_template_part(‘meta’);」を使用して呼び出しました。

 

functions.phpにフックを書く

 

実は、「All in One SEO Pack」にはディスクリプションなどのフックが用意されています。

使用しているテーマの「functions.php」に以下のコードを追加することでディスクリプションなどを入れることができます。

 

title

 

description

 

keywords

 

注意

 

上記のコードを追加するとタイトル、ディスクリプション、キーワードは挿入されますがOGP」のタグは挿入されません

OGP」のタグは、「aiosp_opengraph_meta」といった別のフックで制御されていますが、作成するのが面倒すぎてやめました。

 

こちらのほうが、お作法的には良いのかもしれませんがとにかくめんどくさいです。

 

まとめ

 

アーカイブページ」に「All in One SEO Pack」でディスクリプションなどのタグを入れる方法でした。

参考にしてみてください。

コメント