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

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

*

嫁の人用:WordPressで記事を取得、ループしたいときに-その1

      2016/09/22

WordPressの制御部分の基本です。

主にメインループの事を描かせていただきます。

メイン・サブループの事についてはこちらで詳しく書かせていただいておりますのでご参照下さい。

ということで、私も忘れそうになる部分があるので覚書きしておきます。

まずは基本のループから

ここ(web帳 様)にわかりやすく書いております。

https://gist.github.com/chocotaro/e345e3906a0a20ce0c7b6d697e119ab4
上のコードが「記事をありったけじゃんじゃん持って来い!」です。

1行目:記事はあるか?なければ用はねえ!

2行目:記事があるだけ繰り返し

3行目:記事タイトル表示

4行目:記事コンテンツ表示

5行目:繰り返しの終端

6行目:記事がなかった時の処理

7行目:「記事がありません」

8行目:1行目の条件終端

といった感じです。

実際の記事出力は2行目と3行目の間に書きます。

記事取得の条件はfunction.phpに書こう

記事をありったけじゃんじゃん持ってくるだけでなく、「このページでは○○カテゴリの記事を○件持ってきて欲しい」など細かく指示したいことがあると思います。

以前は「query_posts」を使ってループの前に条件を書いていたのですが、WordPress親方から「推奨されてないよ」と警告がサラッと出されているので、function.phpに以下の様なコードを書くことになります。

https://gist.github.com/chocotaro/ec7b60c5da87326c36b9fe230e174076

これは「pre_get_posts」というやつで、通常の命令とは違っててクエリが動く(記事が読み込まれる)前に勝手に動く命令なのです(これを「フック」などと言ったりする)。

ですので、ここに「どの表示場所の場合」で「どんな記事表示の条件」を使うのかを指定することになります。

上のコードであれば、「home.phpまたはアーカイブページの場合」、「1ページに10件ずつ表示、ただしカテゴリIDが5の記事は除く」となります。

条件については関数リファレンス/WP Queryの条件を見ると良いでしょう(pre_get_postsとは違う命令ですが、項目は共通なので)

あと、ハマリポイントを書いておくと、固定ページ内ではpre_get_postsは使えません。ご注意を!(メインループ外なので・・・詳しくはこちら

 - WordPressの事 , ,

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

  関連記事

マルチサイト引越し時の注意

マルチサイト引越の手順でひっかかったので忘備録。 引越し先のWordPressイ …

サムネイルをいちいち入れるのめんどくさい人に Default Thumbnail Plus

めんどくさがりやーな「だいすけ」です。 こんにちは。 WordPressのサムネ …

新着情報などでAll-in-One Event Calendarのカテゴリ名を表示する方法

ハマりました。 ドハマリしました。侮ってました。 「カテゴリ出力するだけでしょ。 …

Redirectionプラグイン:REST APIの検索で止まる

久しぶりのWordPress忘備録。 Redirectionプラグインを初期設定 …

Limit Login Attempts Reloadedとしてヤツが帰ってきた件

かんたん優秀なセキュリティ、「Limit Login Attempts」 Lim …

「パスワードは、記号を含むか、20 文字以上でなければなりません。」で苦しんだ話

ワードプレスのユーザーを追加する際、パスワードを設定するんですが、ここでつまづい …

category.php内で現在のカテゴリを取得する

カテゴリの取得でハマったので忘備録しておきます。 いつもはget_the_cat …

WordPressで記事ごとに簡単リダイレクト「Page Links To」

WordPressの記事を別ページに置き換えたくなるときってありませんか? たと …

WordPressの検索欄が未入力で全件表示してしまう件

間違えて空欄で検索した時に全件表示・・・。 バグでもエラーでもないんですがなんか …

GravatarでWordPressのアバターを作ろう

最近物忘れがヒドイ、だいすけです。 テーレッテレー!! ついこの前、ワードプレス …