賢威7でプラグインなしで自動的に関連記事を表示する方法



賢威7はテーマに関連記事を表示する機能が付いていて、プラグインを使わずに関連記事を表示できます。

けれど自動的に関連記事を表示する機能はついていないので、うっかりすると関連記事を表示させることを忘れてしまいます。

 

賢威7で関連記事を表示させる方法

 

賢威7は投稿の編集画面でカテゴリーかタグをベースに、あるいは任意のURLを指定して関連記事を表示させることができます。

けれどチェックを入れるのを忘れて記事を公開すると、関連記事が表示されません。

先日、自分のブログを読み返した時に「あれ?関連記事が表示されてない!」と思い、編集画面を見てみるとチェックを入れるのを忘れていました。

しかも20記事以上チェックが入っていなかったらしく、結局すべての記事をチェックすることになりました(笑)。

まだそれ程記事数がないブログなので助かりましたが、記事数が多い場合や途中から賢威7にテーマを切り替えた場合、大変だと思います。

全ての記事に関連記事が表示されるように設定できれば楽だと思うのですが、賢威7では設定できません。

そこで自動で関連記事を表示する方法を考えてみました。

 





自動で関連記事を表示する方法を考える

関連記事を表示するプラグインは「Yet Another Related Post Plugin」や「WordPress Related Posts」が有名だと思います。

Yet Another Related Post Pluginは高度な設定ができてより関連性の高い記事を表示できますし、WordPress Related Postsは関連記事を表示するテンプレートのデザインがいいと思います。

けれど関連記事を表示するプラグインはリソースを大きく消費するので、なるべく使わないようにしたいです。

そこでプラグインなしで関連記事を表示させることにしました。

 

プラグインなしで関連記事を表示させる

この記事では賢威7のver7.0.0.7での変更方法です。
ver7.1での変更方法は以下の記事に書いています。

賢威7のver7.1以降で関連記事の表示件数を変更してカスタマイズする方法



賢威7の場合、投稿記事を表示するsingle.phpの関連記事を表示させたい箇所に以下のコードを記入します。

自分はソーシャルボタンを読み出すコードの下に追加しました。

参考記事:アフィリエイトで稼ぐ方法を全部話そうと思う「関連記事をプラグインなしで表示させる方法(カテゴリーで関連付け)

 

<div class="related">
<h3 class="related-title">こちらの記事もオススメです</h3>
<?php
$categories = wp_get_post_categories($post->ID, array('orderby'=>'rand')); // 複数カテゴリーを持つ場合ランダムで取得
if ($categories) {
    $args = array(
        'category__in' => array($categories[0]), // カテゴリーのIDで記事を取得
        'post__not_in' => array($post->ID), // 表示している記事を除く
        'showposts'=>4, // 取得記事数
        'caller_get_posts'=>1, // 取得した記事の何番目から表示するか
        'orderby'=> 'rand' // 記事をランダムで取得
    ); 
    $my_query = new WP_Query($args); 
    if( $my_query->have_posts() ) { ?>
        <ul>
        <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
        <li><?php the_post_thumbnail(array(150,150)); ?>
        <p><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></p></li>
         <?php endwhile; wp_reset_query(); ?>
<?php } else { ?>
    <p class="no-related">関連する記事は見当たりません…</p>
<?php } } ?>
</ul>
</div>

 

「showposts」の数字を変えることで表示する関連記事の記事数を変更できます。

 

 

表示を確認するとちゃんと関連記事が表示されています。

後はCSSで表示の調整なんですが。。。

 

 

こちらはPCでの表示。

 

 

こちらはスマホ表示。

不可能です(笑)

数時間格闘したのですが、後日再挑戦することにします。。。

「やっぱりプラグインに頼るしかないのかなぁ」と思っていたのですが、賢威7ではfunctions.phpを編集することによって自動で関連記事を表示させることができるようです。

 

賢威7で自動的に関連記事を表示させる

賢威7で関連記事を表示させるにはfunctions.phpを編集します。

 

参考記事:CHIAKI OFFICIAL BLOG「賢威7で関連記事を記事下に自動表示させるカスタマイズ!

カテゴリーをベースにする

// カテゴリから取得する
$category_relation = get_post_meta(get_the_ID(), 'category_relation', true);
if (isset($category_relation) && $category_relation == "y") {

 

の部分を探します。

Ctrl+fで「カテゴリから取得する」で検索すればすぐ見つかると思います。

 

// カテゴリから取得する
$category_relation = get_post_meta(get_the_ID(), 'category_relation', true);
if (empty($category_relation)) $category_relation = "y";
if (isset($category_relation) && $category_relation == "y") {

 

そしてこのコードに書き換えます。

 

タグをベースにする

カテゴリーの時と同じように、

 

// タグから取得する
$tag_relation = get_post_meta(get_the_ID(), 'tag_relation', true);
if (isset($tag_relation) && $tag_relation == "y") {

 

この部分を探し、

 

// タグから取得する
$tag_relation = get_post_meta(get_the_ID(), 'tag_relation', true);
if (empty($tag_relation)) $tag_relation = "y";
if (isset($tag_relation) && $tag_relation == "y") {

 

コードを書き換えます。

これで賢威7で関連記事にチェックをし忘れても自動的に関連記事が表示されます。

 

 

 

まとめ

  • ユーザーの利便性
  • SEOに有利になる



関連記事を表示するメリットは、サイト訪問者の満足度を高めると同時に1セッションにおけるページビュー・滞在時間が増えてサイト運営者の利益にもなります。

その記事だけでなく、他の記事も読んでもらえると嬉しいです。

またクローラーはリンクをたどって巡回するので、関連する記事が表示されればその分クロールされることになります。

途中でテーマを賢威7にした場合や、関連記事のチェックを忘れることが多いなら自動で表示させた方がいいかもしれません。

 

今日のたつじんへの一歩

たつじんwたつじんw

自分でもう少しカスタマイズできるように、途中で投げ出した本を読みなおしてCSSについて勉強しないといけないかもしれません(笑)