WordPressでカテゴリーページ(アーカイブページ)に固定ページを表示する方法をご紹介する。
今回の案件は、
「カテゴリー分けされた大量の投稿があり、各カテゴリーページをSEO最適化させるたい」
というケースだった。
各カテゴリーページには商品の一覧が表示されるためSEO効果も高いのではないか
という事から始まっている。
仮にワインに置き換えて、概要を説明すると
下の表のような構造でサイトが設計されている。
階層 | 概要 | file | 対策キーワード |
---|---|---|---|
トップ | – | index.php | ワイン |
大カテゴリー | 赤ワインアーカイブ | category.php | 赤ワイン |
小カテゴリー | 産地別 | category.php | 産地名 |
商品ページ | 各商品ページ | single.php | – |
各カテゴリーページには商品の一覧が表示されるが
ページ最適化のために、各カテゴリー毎の商品一覧の上に
ユニークなコンテンツを表示させたい。
もちろん条件分岐で挿入する事が可能だが、
カテゴリー数が多いためスマートな方法を探していた。
通常、こういう場合は「固定ページをランディングページとして作成し
ページ内に商品一覧を表示させる」のが一般的なようだが
そうするとどうしても商品ページのパンクズリストのリンク先が
対策ページではないカテゴリーページへリンクされてしまう。
それで、今回はどうしても
「アーカイブページに固定ページを表示させる」という形を模索する事にした。
プラグインを使用する
さて、固定ページということで考えていたが、プラグインと連動する事で
実現可能と判明したので、こちらの方法を解説する。
カテゴリースラッグを英語で作成
まずはカテゴリースラッグを英語表記で管理画面から登録する。
大カテゴリー 赤ワイン redwine
小カテゴリー ―フランス産 redwinn-france
といった具合だ。
プラグインGlobal Content Blocksを使う
言わずと知れた有名プラグインだが
Global Content Blocksでブロックを作成し
カテゴリーページで表示させたい内容を入れる。
この時に、Custom shortcode stringをスラッグ名と同名にしておく。
テンプレートにコードを追加
次にカテゴリーページのテンプレート内の
表示させたい場所に下記のコードを挿入。
<?php $cat_info = get_category( $cat ); ?> <?php echo do_shortcode('[contentblock id=' .$cat_info->slug. ']'); ?>
これで、redwineのアーカイブページには
Global Content Blocksで作成したコンテンツが表示され、
その下に商品一覧も表示される。
さらにアーカイブページを使用しているので
パンクズリストとも最適化されている。