WordPressに現在のページに関連する記事を表示するSimilar Postsの導入方法


投稿日:2011年12月25日
  • 1
  • 0
  • 1



アクアリウムの記事を読んでる人は、熱帯魚の記事にも興味がある

ブログの使い方は人それぞれですが、テーマを決めても常に一貫した話題だけを扱うことはまれだと思います。むしろ取り留めもなく、付箋にアイデアを書きこむように投稿することが多いのではないでしょうか?

そこで記事に関連するページを自動で表示してくれるプラグイン「Similar Posts」の出番です。記事を読み終えた人に関連するページを表示すれば2ページ目、3ページ目を見てくれる機会も増えます。
また、自分にとって面白そうな記事がたくさんあると認識してもらえれば、ブックマークしてもらえる確率もグンとあがります。

たくさんのテーマについて記事を投稿している人はぜひ導入しましょう。


導入方法

WordPressにログインして管理画面で「プラグイン>新規追加」で「Similar Posts」を検索。インストールします。
続けて「WordPressに人気の記事を表示するPopular Postsの導入方法」の記事で紹介した「Post-Plugin Library」もインストールします。(既にインストールしている方は必要ありません)


設定

1.WordPressの管理画面から、「設定 > Similar Posts」をクリック。


「General Settings」(一般設定)

画面を見ると「Popular Posts」の設定にそっくりなのが分かると思います。実際ほとんど同じ項目なので「Popular Posts」を設定したことある人はすぐに理解できると思います。

それぞれの設定の意味は以下のようになります。

原文 意味
Number of posts to show: 関連する記事をいくつ表示するか
Number of posts to skip: 何番目の記事から表示するか
Show password-protected posts? パスワードで保護された記事を表示するか
Show static pages? 静的ページを表示するか
Show attachments? 添付ファイルを表示するか
Display posts that are:
・Published
・Private
・Draft
・Future
どの状態の記事を表示するか
・公開設定の記事
・非公開設定の記事
・下書きの記事
・将来公開予定の記事〈公開日時を予約した記事〉
Omit the current post? 現在の投稿を除外するか
Match the current post’s category? 現在のカテゴリーから人気記事を表示するか
Match the current post’s tags? 現在のタグから人気記事を表示するか
Match the current post’s author? 現在の投稿者の記事から人気記事を表示するか

2.Number of posts to show:」で関連する記事を表示する数を設定します。今回は「5つ」表示したいため、「5」と入力します。
設定が完了したら「Save General Settings」を押して設定を保存します。


続いて「Output Settings」(出力設定)

ここでは関連する記事をどういった形で出力するか設定できます。
Output template:」で出力のテンプレートを設定します。画面右にある「Available Tags」を使うことができます。(Available Tagsの解説はここでは省略します。)

それぞれの設定の意味は以下のようになります。

原文 意味
Output template: 出力テンプレート
Text and codes before the list: リストの開始に挿入するタグ
Text and codes after the list: リストの終了に挿入するタグ
Default display if no matches: 記事がないときに表示する文字
Show nothing if no matches? 記事がないときに表示をするか
Show nothing if no matches? 記事がないときに表示をするか
Text and codes between items: 項目間に表示するテキストやタグ
Sort Output By:leave blank for default order ソート条件を指定
「Available Tags」を指定して降順・昇順を指定します。(上から順位ごとの表示ではなく、トップ10の記事を{title}で名前順に並べたい。といった指定ができます。)
Group title template: ソートを行った際に表示されるタイトル
{categorylinks}や{tag}を指定すれば、記事に関連するカテゴリやタグを表示することができる。

3.デフォルトのままだとマウスオーバーしたときにタイムスタンプを表示する設定なので、タイトルが表示されるようにしました。

人気の記事」と違って、「関連する記事」は遠い過去の記事を表示することが多くなります。ニュース性の強いタイムリーな話題の場合、過去の投稿は観覧者にとって情報としての価値が低くなることが考えられます。そこで投稿の公開日を表示するタグ「{date}」を追加しました。

<li><a href="{url}" title="「{title}」の記事へ移動する">{title}</a> - ({date})</li>

入力が終わったら「Save Output Settings」をクリックして設定を完了します。


「Filter Settings」(フィルター設定)

除外する、または人気記事に含める投稿を設定できます。「General Settings」では投稿の状態で除外するファイルを選べましたが、この設定ではより細かく「特定の記事IDを除外する」といった指定をすることができます。
複数指定する場合は、カンマ区切りで表記します。

それぞれの設定の意味は以下のようになります。
(デフォルトでは全ての記事が対象になってます)

原文 意味
Posts to exclude: IDの記事を除外する
Posts to include: IDの記事を含む
Authors to exclude/include: 投稿者ごとに除外するか含めるか選択
Categories to exclude/include: カテゴリごとに除外するか含めるか選択
Match posts with tags: 含めるタグを指定
Match posts by custom field: カスタムフィールドを含めるか選択

今回はすべての記事から一番人気の記事を表示させたいので何もフィルターを設定しません。


「Placement Settings」(どこに配置するかの設定)

記事のどこに出力するか設定できます。
このプラグインはPHPファイルにタグを挿入することで表示する場所を選べますが、「記事の最後に人気記事を表示したい」といったよくある使い方をする場合はチェック一つで表示可能です。
Activate」を「Yes」にするだけで表示させることが可能です。

ちなみに自分で関連する記事の表示場所を決めたいときはPHPファイルに

<?php similar_posts(); ?>

と入力すると表示できます。

それぞれの設定の意味は以下のようになります。

原文 意味
Output after post: 記事の最後に人気記事を配置
Output in RSS feeds: RSSに人気記事を配置
Output in widget: ウィジェットに配置
Output in content(via special tags): コンテンツに配置?

4.今回は投稿の最後に関連する記事を表示したいので「Output after post:」の「Activate」を「Yes」にします。

5.Parameters」で表示方法を指定できます。タイトルの部分を変更し

prefix=<hr /><h3>現在のページに関連する記事:</h3><ul class="similar-posts">&suffix=</ul>

としました。

6.Condition」で表示するページを選べます。今回は投稿ページで表示して欲しいので「is_single()」を入力したまま設定を保存します。固定ページだけで表示させたいときは「is_page()」と入力することで実現できます。

設定が完了したら「Save Placement Settings」をクリックして設定を完了します。


「Other Settings」(その他の設定)

この設定は「Similar Posts」独自のものです。
サイトによって最適な値は変わるので「Relative importance of:」と「Extract terms to match by:」の設定を調節してください。
例えばタイトルが記事の内容を的確に表している場合はタイトルに重みを与えたほうが正確に表示されます。反対にタイトルを日付やナンバリングに使っている場合は本文に重みを与える必要があります。

原文 意味
Relative importance of: 関連する記事を選ぶ重みの割合
Maximum number of words to use for match: 関連する記事を選ぶ際に使う単語数
Extract terms to match by:
・Word Frequency
・TextRank Algorithm
単語の抽出基準。
・単語の出現頻度
・単語の重要度
Look for manual links in custom field? カスタムフィードで表示するか?(不明)
Add Similar Posts to feeds? (DEPRECATED! This setting will be removed in the next major release – use the placement settings instead) Feedに関連記事を表示するか。次期バージョンで無くなる設定らしい
Other plugins’ tags to remove from snippet: 他のプラグインで使うタグを除外する?

7.今回は「content」で「70%」、「title」で「30%」に設定。
8.Extract terms to match by:」で「TextRank Algorithm」を指定。
TextRank Algorithmとは説明を読んでもよくわからないほど高度なテキストマッチの技術らしいですwどうやらGoogleのページランクのようなシステムで単語の重要度を付けるようです。せっかく付いた機能なのであやかって付けておきましょう。


「Manage Index」(インデックスの管理)

Similar Postsでは投稿がアップロードされるごとにインデックスを作成し直して、常に最新のものに書き換えています。その際に、言語の違いによる不具合がでるようで、日本語で正常に動作させるのに必要な設定です。

Extract terms to match by:」の「by stem」はドイツ語やスペイン語などで同じ語意を持つものを同一に扱うアルゴリズムのようです。(詳細は不明。ヘルプ参照とのこと)よって、日本語では「strictly(厳密に)」か「fuzzily(あいまいに)」のどちらかを選びましょう。
バッチサイズ(Batch size:)」は軽くすることでサーバへの負担を減らすことができます。

原文 意味
Handle extended characters? 拡張文字を使用するか
Treat as Chinese, Korean, or Japanese? 日本語などを使用するか
Extract terms to match by:
・strictly
・by stem
・fuzzily
 単語の一致基準
・厳密に
・語幹アルゴリズムで
・あいまいに
Batch size: バッチサイズ(一回の作業に使うデータの量)

9.今回は日本語の記事を書いているので「Handle extended characters?」と「Treat as Chinese, Korean, or Japanese?」を「Yes」に設定します。


以上で設定は完了です。
投稿した記事に戻って、記事の最後に関連する記事が表示されているかどうか確認してみましょう。
サンプルは↓の「現在のページに関連する記事:」を見てください。



現在のページを共有する



現在のページに関連する記事


おすすめの記事


コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。