var_dump()を使ってみよう

dunp02

WPで作ったサイトで「ページが閲覧できる」のがどういうことか、というのを、以前の勉強会でも説明しましたが、ざっくり、以下の通り。

①URLにアクセスがある
例えば https://learning.ccc-labo.net/2015/11/ある記事/

②URLからクエリの発生
例えば 「これは記事ページっぽい」「2015年11月のある記事のIDはXX」
「データーベースさーん、投稿記事のID XXのデータください」

③データベースからデータを取得

④整形して表示

正確なところ、ちょっと違う、とか、あると思いますが、大まかこんな流れです。

この時、データベースから渡されたデータというのは、これもイメージなんですが、「変数」という名の「箱」に収められていて、外から見た感じだと中身に何が入ってるのか見えないんです。

それを見て確認したい!という時に便利なのが var_dump() 関数です。

dunp01

詳しい使い方は、こちら

<?php var_dump($a);?>

こんな感じで書きます。この時、調べたい変数が $a です。

dunp03

実際に見てみましょう。

テストサイト(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()で「データの中身を見てみる」是非おためしください。

[ssba]

※現在スパム対策のため、コメントにhttpを含む場合のコメント入力をできなくしています。URLを書き込む際はドメイン以下から書き込みください。

コメントを残す

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