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で複数のループを使ってカスタム投稿一覧を自在に表示する方法
関連記事
-
-
WordPressの管理画面が重くなったら(WPML使用サイト向け)
はっきりとした原因は不明なのですが、WPMLを入れていたWordpressサイト …
-
-
WordPressのページを印刷しようとするとスタイルが崩れる
WordPressのページを印刷しようとするとガタ崩れする時があると思います。 …
-
-
PHPでページの一部の文言だけを更新する方法
サイトのページの一部だけをブラウザから更新したい、だけどCMSとか入れるほどでも …
-
-
「パスワードは、記号を含むか、20 文字以上でなければなりません。」で苦しんだ話
ワードプレスのユーザーを追加する際、パスワードを設定するんですが、ここでつまづい …
-
-
Lightbox系プラグイン「Easy FancyBox」
特に意識すること無くLightbox(ふわっと写真を別ウィンドウで表示する)を使 …
-
-
タクソノミー(ターム)の記事一覧を出したい!
あれ?archive.phpで表示してる・・・? WordPressでカスタムタ …
-
-
WP_Queryの使い方
WP_Queryの使い方はちょくちょく忘れますので忘備録。 WP_Queryの使 …
-
-
別ページのカスタムフィールドの値を取りたいときー
トップページにカスタムフィールドの値を出したい時ってありますよね? そんな時は固 …
-
-
月別アーカイブページでカテゴリ指定
月別アーカイブページでカテゴリ指定したい・・・ でも、query_postsやW …
-
-
WordPressでよく使うコードまとめ
完全に自分用です。 View the code on Gist.