WPで作ったサイトで「ページが閲覧できる」のがどういうことか、というのを、以前の勉強会でも説明しましたが、ざっくり、以下の通り。
①URLにアクセスがある
例えば http://learning.ccc-labo.net/2015/11/ある記事/
②URLからクエリの発生
例えば 「これは記事ページっぽい」「2015年11月のある記事のIDはXX」
「データーベースさーん、投稿記事のID XXのデータください」
③データベースからデータを取得
④整形して表示
正確なところ、ちょっと違う、とか、あると思いますが、大まかこんな流れです。
この時、データベースから渡されたデータというのは、これもイメージなんですが、「変数」という名の「箱」に収められていて、外から見た感じだと中身に何が入ってるのか見えないんです。
それを見て確認したい!という時に便利なのが var_dump() 関数です。
詳しい使い方は、こちら。
<?php var_dump($a);?>
こんな感じで書きます。この時、調べたい変数が $a です。
実際に見てみましょう。
テストサイト(http://new.ccc-labo.net/)のトップページのテンプレート、front-page.phpで下記を書いてみました。
<?php var_dump($post);?>
すると、下記の通りダンプ(出力)されます。
object(WP_Post)#113 (24) { ["ID"]=> int(6) ["post_author"]=> string(1) "1" ["post_date"]=> string(19) "2015-08-10 00:14:06" ["post_date_gmt"]=> string(19) "2015-08-09 15:14:06" ["post_content"]=> string(756) "私は、フリーランスでホームページの制作をしています。 シー・ラボラトリーは屋号です。 Communication, Coding, Community, Cats... etc これから大事にしていきたいものの多くが「C」という頭文字だったので、それらを考察する研究所になっていけたらいいな、と思い、C-Labo. という屋号が生まれました。 co- の接頭辞には「共に」のという意味があります。 発注してくれた方、その方のお客さん、私と一緒にチームを組む人、そういうつながりのある方が、仕事を通してみんなで「何か新しいもの、新たな知識や展望」が見られるといいなと考えています。" ["post_title"]=> string(9) "トップ" ["post_excerpt"]=> string(0) "" ["post_status"]=> string(7) "publish" ["comment_status"]=> string(6) "closed" ["ping_status"]=> string(6) "closed" ["post_password"]=> string(0) "" ["post_name"]=> string(5) "front" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2015-11-01 15:54:58" ["post_modified_gmt"]=> string(19) "2015-11-01 06:54:58" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(34) "http://new.ccc-labo.net/?page_id=6" ["menu_order"]=> int(0) ["post_type"]=> string(4) "page" ["post_mime_type"]=> string(0) "" ["comment_count"]=> string(1) "0" ["filter"]=> string(3) "raw" }
例えばこれをもとに、
スラッグ名を表示したり、
<?php echo $post->name;?>
親ページの有無を判定したり、
<?php if($post->post_parent): //親ページがある時の処理 else: //それ以外の時 endif;?>
ということが、できちゃうのです。(もちろん、WPの関数を使った方が良い場合もありますので、その辺りは自己責任で。)
var_dump()で「データの中身を見てみる」是非おためしください。