【WordPress】WordPressのクラス「WP_Query」の確認方法

WordPressサムネイル画像

ループのテンプレートタグに用いられる、have_posts()やthe_post()の中身の確認方法。

要詳細確認。

ループ処理の基本

WordPressにおけるPHPのループ処理として、以下のような記述が行われる。

<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
//ループの中身
<?php endwhile; endif; ?>

上記はループを用いる際に、半ばおまじない的な意味で記述する。
しかし、条件判定で用いられている関数have_posts()やthe_post()はどこに記述があるのだろうか。

ソースコードの記述場所

結論から言うと、「wp-includes/class-wp-query.php」に詳細が記されている。

have_postsを例に挙げる。

have_posts関数の記述場所は公式サイトによると、「wp-includes/query.php」とのこと。

では、query.phpの中身を確認する。以下はこちらより引用。

861	function have_posts() {
862	        global $wp_query;
863	        return $wp_query->have_posts();
864	}

ここで重要なのが、wp_queryという存在である。wp_queryというクラス内のメソッドであるhave_postsを呼び出している。

つまり、クラスwp_queryの詳細を見ることが出来ればよい。

では、詳細はどこにあるか。

冒頭で述べた通り、「wp-includes/class-wp-query.php」内で間違いないと思われる。
ループカウンタであるcurrent_post等が使われていることからも類推できる。

公式サイトの class-wp-query.php の詳細はこちら

関数の詳細までは確認できていないが、引き続き見ていきたいと思う。