前回までの記事で、同カテゴリの記事を紹介する関連リンクを作るのに、
いろいろ調べて、get_posts()関数を使ってみた。。。という話を書いたと思います。

今日は、もう一つの候補。new WP_Queryを使ってみたというお話。

ぜひ、見て欲しい参考記事

new WP_Queryを使う初心者の方に、ぜひ一度見ていただきたいのが、この記事。
というか、ワードプレスのフォーラムのやり取りなんです。

WordPress > フォーラム wp_queryがリセットされない

この中で、非常に役に立つ公式が紹介されています。

<?php
// クエリ
$my_query = new WP_Query( $args );

// ループ
while ( $my_query->have_posts() ) : $my_query->the_post();
	the_title();
endwhile;
// 投稿データをリセット
wp_reset_postdata();
?>

これは、上記記事の引用です。

  1. $argsで、呼んでほしい記事のパラメーターを指定する。(パラメーター参考:関数リファレンス/WP Query – WordPress Codex 日本語版
  2. WP_Queryを使って、必要な記事を呼んでくる。
  3. 条件分のものはすべてループで表示させる。
  4. 一連の操作が終わったら、wp_reset_postdata()で、クエリデータをリセットする

頭の中で、一連の4つの動作があると覚えておけば、
あとは、自分でプログラムを書くなり、他人のソースを参考にする時に、大いに参考になると思います。

おすすめの参考記事

関連記事をプラグインを使わずに表示する!WordPress高速化Tips! – ウェブソク

管理人は、この記事をそのまま・・・いや、一か所変えて使っています。
行の説明も、パラメーターの説明もしっかりつけてくださっていますので、
条件を変える時も、簡単だと思います。(例では、ランダム表示だが通常表示など)

っで、変えたのは最後の一行を

wp_reset_query(); → wp_reset_postdata();

に変更しています。理由は、上記リンクの公式にあてはめたから。
後は、表示させるところ、表示形式を自分のサイトに当てはめるだけです。

記事中に表示させるのもOK

前の記事で、get_posts()だと、記事中に指定の記事を呼んでくるのが、難しいと書きましたが、
この、new WP_Query()を使うと上手く行くようです。
$argsのところを上手に条件指定すること(以下は例)

$args = array(
	'tag'=> 'example',
	'posts_per_page' => 5
);

ただ、前記事でも書きましたが、あんまり誉められた用法ではないようなので、
ここでは、ソースを書くことはやめておきます。
functions.phpに書いて、ショートコードで呼んでくるというやり方です。

ちなみに、この記事下にある「同カテゴリ記事関連リンク ピックアップ」が、管理人が採用した関連記事リンク。
カテゴリの内容を10件、ランダムに表示。
末尾に、カテゴリリンクを貼っています。

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

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

関連記事リンクを作るのに、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日
広告