マジカルスリー・だいすけのなりゆき長者ブログ

沖縄/大阪WEB広告・ホームページ制作・印刷物制作 マジカルスリー 「福」代表のブログ

*

WordPressで記事を取得、ループしたいときに-その2

      2016/09/22

WordPressで記事を取得したいんだけど・・・

WordPressで記事を取得したい初心者の方のため&ど忘れしちゃった初・中級者(私含む)の為にこの記事を残しておこうと思います。

まずはソースから。

  1. get_posts
  2. WP_Query
  3. query_posts

代表的なものだけでもこれだけあります。

しかし、本当に主流として使って欲しいのはここの記事に掲載している方法なのです。
こっちを先に見ていただけると嬉しいかもしれません(๑´ڡ`๑)

サブループ用はget_postsとWP_Query

ざっくりとした説明ですが、

get_postsとWP_Queryはほぼ一緒です(乱暴)

WP_Queryのほうが持っている情報が多いらしいのでこっちを使うのが良いでしょう。

そしてこれらは「サブループ」向けです。

サブループはメインループのようにデータ取得部分を省略できないので、明示的にどのデータを取得するかを指定する必要があります。

つまり、通常の記事表示はメインループ、よくある新着記事一覧の小窓(日付とタイトルだけが並んでるようなやつ)などはサブループを使うと良いかもしれません。

あと、自分もハマったのですが・・・固定ページに記事一覧を出したいようなときの事です。

固定ページはメインループ外なので次の項目に書いたpre_get_postが使えません

そんな時にWP_Query(またはget_posts)を使うと良いと思われます。

メインループとサブループの条件がごっちゃにならないように分けておくのが良いと思います(๑´ڡ`๑)

一方、メインループはpre_get_postとquery_posts

今のところpre_get_post一択だそうです。function.phpに書くのでメンテナンス性がかなり上がります。

詳しくはこちら

一方、query_postsは厳密に正しく扱わないとページネーションなどが上手く動かない場合があります。

つまり、誤動作覚悟になっちゃうわけです(グローバル変数とリセットに気をつければ大丈夫だそうですが)

しかも公式が「推奨されない」指定しております。使えなくなる事は無さそうですが・・・。

でも、世の中はquery_postsが多数を占めています。参考にしたいあのコードもquery_posts。。。

そんな訳でquery_postsの使い方も覚えておくと良いと思います。ループ直前に直書きなので、ささっと使う分には使い勝手が良いのです。
(大きいプロジェクトになると面倒くさそうですが)

 

もっと知りたい方はM-HAND様 WordPressで押さえておきたい!get_posts,WP_Query,query_posts の違いと用例へ。

こちらもオススメです。OXYNOTES様 WordPressで複数のループを使ってカスタム投稿一覧を自在に表示する方法

 - WordPressの事 , , , , ,

Message

  関連記事

ワードプレスのサイト引越し時に500エラー

毎度おなじみのワードプレス備忘録です。 表題の通り、よくある(よくあってほしくな …

サイトに重大なエラーがありました。と出てきて顔面蒼白になる

WordPressを使っていると稀にこの事象に出くわします。 バックアップが運良 …

各固定ページのページデザインをテンプレート選択で可能にする方法

よく使うのに忘れてしまうのでまた忘備録がわりに・・・。 【ネタ元:はじめてのWo …

カスタムフィールドの値をURL指定して記事をソートする

WordPressは記事ソートや抽出が中々優秀でして、URLから指定してあげるこ …

海外テーマで文字化け回避したいの巻

テーマで文字化け! 海外製のWordpressテーマを使ったときに起こりやすいん …

ショートコードの出力結果が固定ページや投稿の上部に表示される

またもやWordPress覚書。もはやメモ帳代わり。 固定ページなどの途中でPH …

Lightbox系プラグイン「Easy FancyBox」

特に意識すること無くLightbox(ふわっと写真を別ウィンドウで表示する)を使 …

WordPressのページを印刷しようとするとスタイルが崩れる

WordPressのページを印刷しようとするとガタ崩れする時があると思います。 …

Advanced Custom Fieldsで作ったカスタムフィールドの画像をアイキャッチ画像にする

カスタムフィールドで投稿した画像を自動でアイキャッチ画像にしたかったのですが、A …

All-in-One Event Calendarでエラー「イベントの取得中に何かがうまくいきませんでした。」

使い慣れないプラグインは変なことが起こるのでびっくりデスよ。 表題のエラーが起こ …