月間100万PVを誇る。。。という有名ブログにはたいていついている機能。
関連記事リンクをつけてみようと思ったんです。

よく、記事下に、「この記事もいかがですか?」みたいな記事がありますよね。
あの機能のことです。

機能としては単純で、現在の記事と同じカテゴリの記事を
リンク紹介のような感じで出すもの。
お客様にとっては、その記事にわざわざ見に来ていただいたということは、
同じカテゴリにも、おそらく興味があるだろうから、回遊性も高まりますよね。

っで最初は簡単だろうと、タカをくくっていたのですが、案外難しく奥が深いと感じたので、
管理人が四苦八苦した一連の作業を記事にまとめておこうと思いました。


google広告

プラグインを使う方法もある

まず、初心者向けのお話をしておくと、悩まずにプラグインを使うという方法もあります。
優秀な方が作ってくれているので、本当にありがたいですよね。

初心者は、あんまりプログラムは触りたくない。。。というのが、本音だと思うので、
ありがたく使わせていただきましょう。

「関連記事 リンク プラグイン」などで検索すると簡単に出てきます。
かなり種類もあって、体験記事なども出ていますので、じっくり比較検討してみるのもいいと思います。

アレ!使うんでしょ。。。

っで、簡単だろうとタカをくくっていたのには、理由があって、
query_posts()を使うんでしょ。と思っていたんです。

queryって、辞書で引くと「質問する」とかだけど、IT関連では「要求する」って意味で使われますよね。
さらに、postって、記事とか投稿するみたいなニュアンスがあるから、
要求した記事を集めてきてくださいって命令で()内のパラメーターで、
要求内容を決めるって感じ。

素人でも直感的に分かりやすい関数です。
さらに、今まで読んだ解説本の中でも使われていたものがあったし。。。

また、「関連記事 リンク ワードプレス」と言ったキーワードで検索すると、
query_posts()で書かれたプログラムがたくさん検索されてきます。

query_posts()は使わないほうがいい

っで、query_posts()のパラメーターを調べようと思って、
検索してみると、衝撃的な記事を発見したんです。

query_postsを捨てよ、pre_get_postsを使おう【追記あり】【報告あり】 | notnil creation weblog

うそ。。。使えないの。。。っで、代わりに使う「pre_get_posts」って何?
このブログをはじめ、ちょっと調べてみたんですが、結局「pre_get_posts」の使い方は分かりませんでした。

ちなみに、上記リンクブログの著者@HissyNCさんは、
ワードプレスで有名な方で、この内容は信頼がおけると直感しました。

WordPressでページ送りが動かないのはどう考えてもquery_postsが悪い!【pre_get_posts、WordPressループまとめ】 | notnil creation weblog

このブログ記事も、ぜひ一度読んでおいたほうがいいと思います。
なぜ、query_posts()を使ってはいけないのかが、スライド形式などで分かりやすくかかれています。

・・・ただし、申し訳ない。これは管理人の能力不足ですが、
なぜ、query_posts()を使ってはいけないかは理解できませんでした。

偉い人が言ってるから、多分間違いないと思う。。。申し訳ない、管理人の理解はその程度です。
しかし、このスライドには、重要な解決策が書かれていました。

メインクエリーの変更は、pre_get_posts。
サブクエリーの作成は、get_posts、もしくはWP_Queryを使い分ける

これで解決の方向が見えてきました。
さらに、このブログ記事は、もう一つ重要な情報が書かれていました。

それは、管理人が考えたアイデアはできたらやめたほうがいいというものでした。
これは、またの機会に後述します。

「関連記事リンクを作る」の一連記事

関連記事リンクを作る過程で、当ブログに投稿した一連の記事です。

関連記事リンクを作るのに、query_posts()は使わないほうがいい

月間100万PVを誇る。。。という有名ブログにはたいていついている機能。 関連記事リンクをつけてみようと思ったんです。 よく、記事下に、「この記事もいかがですか?」みたいな記事がありますよね。 あの機能のことです。 機能 […]

2013年12月02日

get_posts()で関連記事リンクを作る

前回の記事で、関連記事リンクを作りたいが、query_posts()は使わないほうがいい。 という記事をご紹介したと思います。 っで、今日はその続きの記事。 get_posts()を使ってみよう 記事の末尾で、重要なサジ […]

2013年12月03日

new WP_Queryを使って、関連リンク記事を作る

前回までの記事で、同カテゴリの記事を紹介する関連リンクを作るのに、 いろいろ調べて、get_posts()関数を使ってみた。。。という話を書いたと思います。 今日は、もう一つの候補。new WP_Queryを使ってみたと […]

2013年12月04日
広告