WordPressで記事を取得、ループしたいときに-その2
2016/09/22
WordPressで記事を取得したいんだけど・・・
WordPressで記事を取得したい初心者の方のため&ど忘れしちゃった初・中級者(私含む)の為にこの記事を残しておこうと思います。
まずはソースから。
- get_posts
- WP_Query
- 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で複数のループを使ってカスタム投稿一覧を自在に表示する方法
関連記事
-
-
カスタムフィールドの出力(テンプレート作成)について
表題の通り覚え書き。 テンプレートを作る。page.phpなどを元にしてテンプレ …
-
-
get_postsの初期値が5件だった件
もう、表題のとおりなんですが忘備録。 WordPressのget_postsの初 …
-
-
WordPressの指定日時での部分表示
久しぶりにWordPressで少しハマったので忘備録です。 サイトの一部分だけ指 …
-
-
Limit Login Attempts Reloadedとしてヤツが帰ってきた件
かんたん優秀なセキュリティ、「Limit Login Attempts」 Lim …
-
-
Lightbox系プラグイン「Easy FancyBox」
特に意識すること無くLightbox(ふわっと写真を別ウィンドウで表示する)を使 …
-
-
category.php内で現在のカテゴリを取得する
カテゴリの取得でハマったので忘備録しておきます。 いつもはget_the_cat …
-
-
新着情報などでAll-in-One Event Calendarのカテゴリ名を表示する方法
ハマりました。 ドハマリしました。侮ってました。 「カテゴリ出力するだけでしょ。 …
-
-
PHPのバージョン変更したことでエラーが出る
PHPバージョン7系のサーバーからPHPバージョン8系サーバーにサイト移管した時 …
-
-
Advanced Custom Fieldsで作ったカスタムフィールドの画像をアイキャッチ画像にする
カスタムフィールドで投稿した画像を自動でアイキャッチ画像にしたかったのですが、A …
-
-
Sydneyで正方形のアイキャッチ画像を使いたかった話
通常、WordPressでアイキャッチ画像を設定すると、そのサイズでアイキャッチ …
