WordPressのSEO勘所! 同カテゴリー記事を表示する方法 – 但し子カテゴリー記事は除く

DSC_8046

ブログ記事に関連記事として「同カテゴリー記事のリスト」を掲載することは、ブログで行っておきたいSEO対策の一つです。

当ブログでは旧Movabletype時代から、同カテゴリー記事を「関連記事」として各記事ページに表示させていました。ところが、WordPressに移行してから、ネット上で多く紹介されている方法を試してみたところ、私が表示させたい形にはなりませんでした。

この度、問題を解決して、WordPressでも理想的なリスト表示ができるようになりました。新しい方法を紹介します。

スポンサーリンク

子カテゴリーの記事も表示されてしまう

似た内容の記事同士で内部リンクすることで、検索エンジンが、記事のテーマを理解しやすくなります。もちろん、人間にとっても、関連記事が掲載されていることは便利なはず。SEOはユーザビリティと同義です。

ところが、ネット上で紹介されている方法で同カテゴリーの記事を表示すると、子カテゴリーに所属する記事まで表示されてしまうのです。多くの子カテゴリがぶら下がっているカテゴリに属している記事だと、100記事以上のリストができてしまいます。

ユーザビリティの向上どころか、リンクだらけで分りにくくなってしまっています。そこで、子カテゴリー記事は除いて、同一カテゴリー記事を表示する方法を考えてみました。

category__in= を使う

テーマの同カテゴリー記事リストを表示させたい位置に、

[php]<?php
$categories = get_the_category();
foreach($categories as $category):
$related_posts = get_posts(array(‘category__in’ => array($category->cat_ID), ‘exclude’ => $post->ID, ‘numberposts’ => $post->ID, ‘numberposts’ => -1));
if($related_posts): ?>
<ul>
<?php foreach($related_posts as $related_post): ?>
<li><a href="<?php echo get_permalink($related_post->ID); ?>"><?php echo $related_post->post_title; ?></a></li>
<?php endforeach; ?>
</ul>
<?php endif; endforeach; ?>[/php]

を設置してください。

4行目が勘所です。4行目は
[php]$related_posts = get_posts(‘category__in=’.$category->cat_ID.’&exclude=’.$post->ID.’&numberposts=-1′);[/php]
でも動きました。

ネット上で多く紹介されているコードは、4行目が
[php]$related_posts = get_posts(‘category=’.$category->cat_ID.’&exclude=’.$post->ID.’&numberposts=-1′);[/php]

になっています。category=でカテゴリーを指定すると、小カテゴリも含まれてしまうのです。

category__in=で指定すると、小カテゴリは含まれなくなります。

ぜひお試しを!

今日のわかった

今年の5月にWordPressに切り替えてから、ずっと気になってしました。

ブログ内のリンク構造が大きく変わるので、正直ちょっと心配なところはあります。

しかし、Movabletype時代は子カテゴリ記事は表示させない形でしたし、この方がユーザビリティ的に正しいはずなので、大丈夫だと思います。多分…。

SEOWordPress
スポンサーリンク
当ブログの記事に共感していただけたら、また読みに来ていただけると嬉しいです。読んでくれる方の数が多くなると、更新するヤル気に繋がります(^^)
フォロー、ブックマークしていただけると、ブログ更新を見逃しません

コメント

タイトルとURLをコピーしました