WordPress 備忘録 | メシのタネ

wpppppppp
このエントリーをはてなブックマークに追加

WordPressでメインループの最後になんかしたい人向け

 2014/12/11

仕事でWordPressを今使ってて、index.phpにループを使ってコンテンツをぼんぼんと吐き出しています。で、見栄え的に最後のコンテンツ出力の際に、ボックスのしたについてる線を消したい!このボックスの線を消してやりたい!そう思った時に条件分岐をしよう!ってなると思います。でもループって何を回してるんだってなったので、いいやもうぐぐろって思ったらメインループなのにwp_query使ってもっかいクエリの結果を受け取ってて、こんなんいややー!ってなったので自分で書きました。wp_query使っても良いと思います。実現できるなら手法なんてなんだって良いと思います。ただ、なんとなく僕はwp_queryがあんまり好きじゃないので、このindex.phpについてくるループのまんま何とかする方法ないかなって考えただけです。

メインループってなぁに

各テンプレートについてるループだと思ってたらURLに対して1つついてるループだそうです。

じゃあループってなぁに

WordPressに限って言えば、設定された投稿数分、または投稿があるだけ、the_postを使って次の投稿を取得し続けていきます。これにより、ループ内の関数を使う事が出来ます。多分クエリは1回しかリクエストしなくて、その1回したリクエストの結果は$postsに入ってるんじゃないかなーって思ってます。

ループの最後を取得するとはどういうことか

とりあえずループ内でお前が最後のIDじゃー!って決め付けようが無いので、データベースの問い合わせ結果が入っていると思われる$posts配列を参照します。この配列最後のオブジェクトのIDプロパティに入ってるのがループ内で使う最後のIDなので、こいつを最後って事にしてプログラムを組んでいきます。

ループの最後を取得するプログラムの流れ

・$posts配列から最後の配列を取得
・取得結果をループ内で比較
・一致したらそこが最後のループである

コード

そうするとこういうコードになっていくと思われますが、もっと上手に書きたい人はもっと上手に書いて下さい。


このエントリーをはてなブックマークに追加

コメント

"WordPressでメインループの最後になんかしたい人向け"
でメシのタネのおすすめを検索したよ!

プログラミング備忘録 | メシのタネ