前回の記事で、関連記事リンクを作りたいが、query_posts()は使わないほうがいい。
という記事をご紹介したと思います。
っで、今日はその続きの記事。
get_posts()を使ってみよう
記事の末尾で、重要なサジェッションを頂きました。
それは、サブクエリを作るなら、get_posts()か、new WP_Query()かを使うというもの。
っで、まずは直感でget_posts()を使う方法を探してみました。
テンプレートタグ/get posts – WordPress Codex 日本語版
ワードプレスの、おそらく公式ページにあたるんですよね。
まず、このページのサンプルプログラムをブログに実装してみて、
どうなるかを掴んでみることが、上達の早道ですよね。
っで、この中に書かれているサンプルコード
「最近の投稿をタイトル順に並べる」を実装してみました。
<?php $args = array( 'posts_per_page' => 10, 'order'=> 'ASC', 'orderby' => 'title' );//呼んでほしい記事の条件、(最近の投稿を<デフォルト>)をabc順に10件の条件 $postslist = get_posts( $args );//条件でデータを取ってきて foreach ( $postslist as $post ) ://とってきたデータを一つ一つあるだけ繰り返してね setup_postdata( $post ); ?> <div> <?php the_date();//日付表示 ?> <br /> <?php the_title();//タイトル表示 ?> <?php the_excerpt();//抜粋文表示 ?> </div> <?php endforeach; wp_reset_postdata(); ?>
上記のコードを、single.phpの表示させたいところに書き込みます。
当ブログで試したところ、こんな感じでした。
ちょっと、分かりにくいですが記事下に、日付、タイトル、抜粋文のように出力されています。
実際は、これにcssを合わせて上げるとよさそう。
現在の記事と同じカテゴリの記事を表示するには
あとは、パラメーターを変えるんですが、
現在の記事のカテゴリを認識し、そのカテゴリで必要件数を表示させることが重要です。
これは、「get_posts 関連記事 同じカテゴリ 表示」などで、検索するとサンプルプログラムが出てきます。
管理人が、いいなと思ったのは、以下の3つのブログ
- WordPressのSEO勘所! 同カテゴリー記事を表示する方法 – 但し子カテゴリー記事は除く
- WordPress 現在のカテゴリーIDやカテゴリー名、スラッグ、説明文、親カテゴリー等を取得表示する方法 | Stronghold
- WordPressの個別投稿ページに同じカテゴリーの記事一覧を表示 |ウェブシュフ
一番上は有名な「わかったブログ」で、現在の記事のみ(子カテゴリを除外)で
関連リンクを表示させる方法が紹介されています。
シンプルな関連記事を掲載したいならおすすめ
get_posts()関数を使ったサンプルは、シンプルで直感的に分かりやすいのが、いいですよね。
なんだかわからないけど、上手く行くというのは、できたら避けたいところ。
その点、パラメーターの呼び出し条件とかも分かりやすい。
またサンプルでは、初心者にも分かりやすいforeach構文でループを作っていて安心というのもいいです。
管理人がget_posts()関数を使わなかった理由
管理人は、この方法を(get_posts()関数を使う)選びませんでした。
理由は2つ。管理人の力では、以下の2つの問題が解決できなかったから
- サムネイル画像が表示できない
- 記事中では使えないというか、使いにくい
一つ目のサムネイル画像が表示できないという問題は、何か上手な解決方法があるのかもしれません。
管理人は、見つけきれませんでした。
それと、もう一つの大きな理由が2番目。
実は、管理人は関連リンクよりも、記事中で必要な記事をブログからピックアップするということをやりたかったんです。
こうすると、ブログ記事の幅が広がるから。
でも、上手にはできませんでした。
この件に関しては、あまり深くは書きません、というのも前にも紹介した
WordPressでページ送りが動かないのはどう考えてもquery_postsが悪い!【pre_get_posts、WordPressループまとめ】 | notnil creation weblog
この記事で、それはカスタム投稿記事でやったほうがいいと書いてあるから。
カスタム投稿は、分かっているようで、よく分かっていません。
初心者である管理人は、またちょっと勉強して、自分でも使ってみてまた紹介したいと思います。
っで、関連記事リンクは、get_posts()関数ではなく、new 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日