WordPressで関連記事を表示する

「へろへろ・のぉと」はWordPressで運用しています。利便性をアップさせようと、エントリーに関連記事を表示させることにしました。

WordPressで関連記事を表示するプラグインはいろいろありますが、最初に定番の「Yet Another Related Posts Plugin」を設置してみました。

このプラグインは記事を分析して、関連がありそうな過去記事を一覧表示します。これらのことを自動的にやってくれるので、設定しておけば手間はかかりません。
だけど、表示されるものが気に入らない。なぜこいつを持ってくる。なぜあの記事を表示してくれないのか。あっちの方がずっと関連度が高いだろう。と、思うような結果になってくれません。

タグまで設定したけど「Yet Another Related Posts Plugin」には早々と退場いただきました。

次に入れたのは「Microkid’s Related Posts」というプラグイン。

このプラグインは関連する記事を手動で設定するタイプ。だからいちいち投稿画面で設定しなければなりません。
しかし、自分で関連づける記事を設定するので結果は思い通りです。ただし、設定しなければ関連記事を表示してくれません。

便利なのはA記事でB記事を関連づけると、B記事からA記事への関連づけが自動的に行われること。

以下は設定画面(赤文字A~Iは説明のために付加)。

130510-01

A:エントリーに関連記事のリストを自動表示させるか?
「Yes」の場合は個別記事画面の記事の末尾に表示されます。
「No」の場合はテーマファイル(index.phpとか)の表示したい場所に
<?php MRP_show_related_posts(); ?>を書き加えます。

B:関連づけを相互に反映させるか?
反映させる場合は「Yes」を選択。便利な機能ではありますが、一方通行を選択的に適用できません。気軽に関連づけると人気な特定のページで一覧が大変なことになる懸念があります。

C:関連記事のタイトル
入力欄に表示する語句とHTMLタグを設定します。

D:関連する記事がないときどうする?
「Nothing」は何も表示しません。定型文を表示する場合は「Show・・・」を選び、入力欄に表示する語句を設定。

E:表示する関連記事一覧にサムネールを入れることができるようです。うちのシステムではサポートされていないと表示されています。

F:CSSはどうする?
自前のCSSを使うのなら「No」を選択し、「style.css」に追加します。

G:一覧の並び順
うちの場合「Manualiy」では反映されませんでした。順番を手動で変えても元に戻ってしまいます。
「Automatically」で日付の新しい順、古い順、アルファベットA~順、Z~順、ランダムが選ぶことができます。

H:関連する投稿タイプの選択

I:投稿タイプ毎にリストを分けるか、一緒くたにするか?
うちは投稿しかないから、一緒くたの「Combine into one list」を選択。

新規投稿画面や投稿編集画面の下の方に関連づけ設定欄が現れます。

130510-02

検索する文字列を「Search items」欄に入力すると、下の枠に候補が表示されます。

うちの環境では何故か何も出ないケースが多々ありました。「Titel(タイトル)」「Contents(記事)」「Both(タイトルと記事の両方)」のラジオボタンを切り替えると表示する場合もあります。負けずに色んな語句で検索するとヒットする場合もあります。それでもダメなら、いったん投稿一覧画面に戻って出直すと表示することもありました。

検索でヒットした候補をダブルクリックすると、上の「Related」欄に設定されます。→ボタンで設定した記事を表示します。×ボタンで削除します。

「Microkid’s Related Posts」の最新版は4.0.3ですが、WordPress 3.5.1での検証がされていないし、1年以上アップデートされていないのが気に掛かります。

<2015年1月18日追記>
検索文字列がヒットしないのは、プログラムのソースが日本語(マルチバイト)に対応していないためだそうな。
SKYBLUES.ORG」さんのブログで詳しい解説がされているので、興味がある方はぜひご参照を。

で、対策は「microkids-related-posts.php」の536、539、542行目に4ヵ所ある
「REGEXP ‘$regexp’」を「LIKE ‘%$s%’」にすべて書き換えればOKだそうです。

「SKYBLUES.ORG」さんに感謝。

コメントをどうぞ

コメントをどうぞ (Japanese text only)

すべての欄が入力必須です。メールアドレスは公開されません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

カテゴリー