FC2ブログ

WordPressのページごとのリクエスト

WordPressでは、リクエストが行われるごとに、そのページで使うであろう情報をSQLで取ってきて
そのページに即したテンプレートを使って表示するということをしているみたいですね。
そこで、どのテンプレートからでも呼ばれるheader.phpに

</div>
request:<?php print_r($wp_query->request);?><br>
found_posts:<?php print_r($wp_query->found_posts);?><br>
</div>

を入れてみると、どのページでも、そこで使われたSQLと、結果の件数が表示されます。
例えばブログの一覧ページだと

request:SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts
WHERE 1=1 AND wp_posts.post_type = 'post'
AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')
ORDER BY wp_posts.post_date DESC LIMIT 0, 5
found_posts:14

ブログの個別ページだと

request:SELECT wp_posts.* FROM wp_posts
WHERE 1=1 AND wp_posts.ID = 126 AND wp_posts.post_type = 'post'
ORDER BY wp_posts.post_date DESC
found_posts:1

固定ページだと

request:SELECT wp_posts.* FROM wp_posts
WHERE 1=1 AND (wp_posts.ID = '23') AND wp_posts.post_type = 'page'
ORDER BY wp_posts.post_date DESC
found_posts:1

のようになります。
これを眺めていると、WordPressがMySQLのDBにどんな感じで記事を格納していて、どうやって検索し、どうやって表示しようとしているか、垣間見れる気がして面白いですね。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

chattera.net

Author:chattera.net
フリーでソフト開発の仕事をしています。
自作したこのチャットシステムは、何か世の中に役に立つこともあるかと思いますので、お呼びがかかるとうれしいですね。

連絡先は chatteranet@gmail.com です。

また、ソフト開発関連のお誘いもうけたまわっております。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR