stinger5の関連記事の精度を上げる

2015年7月17日

stinger5を使うとデフォルトで記事の下部に関連する記事が表示される。しかし、関連記事が期待したものと違うことがあるので改善してみた


とりあえず表示件数を変える

デフォルトでは10件の関連記事が表示される。この設定は[外観]-[テーマの編集]の"kanren.php“を編集して変更できる。

//最初から10行目あたり
$args = array(
'post__not_in' => array($post -> ID),
'posts_per_page'=> 4,            // この値が表示件数
'category__in' => $category_ID,
'orderby' => 'rand',
);

上記のソースでは表示件数を4件にしてある。

なおこのソースを読むと、stinger5の関連記事はカテゴリーが同じものをランダムに表示しているに過ぎない。つまり記事を投稿する際にカテゴリーを厳密に付けていかないと期待した関連記事は表示されないと思われる。

YARPPの導入

関連記事の精度を上げるには、結論から言うとstinger5だけでは無理で、別のプラグインを新たにインストールする必要がある。ここではYARPPを導入する。

スクリーンショット 2015-07-16 6.37.00

[プラグイン]から"YARPP“を探してインストールして有効化、
[設定]-[YARPP]に入り、
フィルター設定」で記事を解析するキーワードの制限、
関連スコア設定」で解析対象となる項目を設定、
以上。これらはデフォルトのままで概ね問題はない。
しかし、実際の表示結果を確認しながら「表示する最低関連スコア」の数字をチューニングはするべき。自分は2〜4ぐらいで調整している。

スクリーンショット 2015-07-16 6.23.29

ここまでの設定ですでに記事の本文直下にYARPPによる関連記事が表示されている。

YARPPの関連記事の見た目をStinger5風に改修

[設定]-[YARPP]の「表示設定」で"Automatically display related content from YARPP Basic on: “のチェックは全て外す。これで本文直下に表示されていた関連記事は非表示になる。

次に表示形式から「<?php カスタム」を選択するが、デフォルトではグレーアウトしている。

yarpp

マウスを持っていくとポップアップが表示されるので、その中の「テンプレートを移動」ボタンを押す。すると、YARPP用のテンプレートが[外観]-[テーマの編集]に追加される。
スクリーンショット 2015-07-16 6.54.27

さて、いよいよ[テーマの編集]からphpファイルを編集していく。
まずYARPPの[表示設定]で選択したテンプレートファイルを次のように編集して保存

<div id="kanren">
<?php if (have_posts()):?>
  <?php while (have_posts()) : the_post(); ?>
  <dl class="clearfix">
    <dt> <a href="<?php the_permalink() ?>">
      <?php if ( has_post_thumbnail() ): // サムネイルを持っているときの処理 ?>
      <?php the_post_thumbnail( 'thumb150' ); ?>
      <?php endif; ?>
      </a>
    </dt>
    <?php if ( has_post_thumbnail() ): ?>
    <dd>
    <?php else: ?>
    <dd class="no_thumbnail">
    <?php endif; ?>
      <h5><a href="<?php the_permalink(); ?>">
        <?php the_title(); ?>
        </a></h5>
      <div class="smanone">
        <?php the_excerpt(); //スマートフォンには表示しない抜粋文 ?>
      </div>
    </dd>
  </dl>
  <?php endwhile; ?>
<?php else: ?>
<p><?php echo (function_exists("icl_t") ? icl_t("Yet Another Related Posts Plugin", "no related posts message", "No related posts.") : "No related posts.") ?></p>
<?php endif; ?>
</div>

さらに単一記事の投稿 (single.php)の関連記事の箇所を修正

<h4 class="point"><i class="fa fa-th-list"></i>&nbsp;  関連記事</h4>
<?php related_posts() ?>
<!-- <?php get_template_part('kanren');?> この行は削除する -->

これで今までのstinger5と同じ見た目で関連記事の精度が上がったはずだ

参照リンク

YARPP-FAQ “How can I move the related post display?"