What's wp ?

What's wp ?

eycatch

変数の表示

テハ
テハ
条件分岐タグがたくさんあるけど、どの条件分岐タグがtrueになるか調べるのが大変なのにゃ?
ワープ
ワープ
$wp_queryグローバル変数にいくつか条件分岐タグ相当のメンバがあるのでそれを見てみるのはどうかなにゃ?
テハ
テハ
変数の中身をみるのはどうすればいいのにゃ?
ワープ
ワープ
var_dump, var_export, print_r等があるにゃ。
テハ
テハ
どうちがうのにゃ?
ワープ
ワープ
出力の形式が違うだけで内容はほぼ一緒にゃ。実際に使ってみたり、マニュアルの注意等を読んで使ってにゃ。

  • var_dump — 変数に関する情報をダンプする
  • var_export — 変数の文字列表現を出力または返す
  • print_r — 指定した変数に関する情報を解りやすく出力する

メリー
メリー
くわしくは以下を参照するでありますにゃ。

$wp_queryの中身をファイルに出力

error_log(var_export($wp_query, true), 3, ABSPATH . "debug.log" );
ワープ
ワープ
上のコードをテンプレート等に書けばそのときの情報が見れるにゃ。

debug.log

WP_Query::__set_state(array(
   'query' =>
  array (
  ),
   'query_vars' =>
  array (
    'error' => '',
    'm' => '',
...
   'max_num_comment_pages' => 0,
   'is_single' => false,
   'is_preview' => false,
   'is_page' => false,
   'is_archive' => false,
   'is_date' => false,
   'is_year' => false,
   'is_month' => false,
   'is_day' => false,
   'is_time' => false,
   'is_author' => false,
   'is_category' => false,
   'is_tag' => false,
   'is_tax' => false,
   'is_search' => false,
   'is_feed' => false,
   'is_comment_feed' => false,
   'is_trackback' => false,
   'is_home' => true,
   'is_privacy_policy' => false,
   'is_404' => false,
   'is_embed' => false,
   'is_paged' => false,
   'is_admin' => false,
   'is_attachment' => false,
   'is_singular' => false,
   'is_robots' => false,
   'is_favicon' => false,
   'is_posts_page' => false,
   'is_post_type_archive' => false,
   'query_vars_hash' => '443e714a5290f77b0df02e2f78f50560',
   'query_vars_changed' => false,
   'thumbnails_cached' => false,
   'stopwords' => NULL,
...
テハ
テハ
たくさんの情報が表示されるにゃ。
ワープ
ワープ
次のように書けば絞り込めるにゃ。

$wp_queryの型がbooleanのものだけファイルに出力

ob_start();
foreach ( $wp_query as $key => $value )
{
	if ( gettype($value) == "boolean" )
	{
		var_export($value);
		echo "\t" . $key . "\n";
	}
}
error_log(ob_get_clean(), 3, ABSPATH . "debug.log" );

debug.log

false	date_query
true	in_the_loop
false	is_single
false	is_preview
false	is_page
false	is_archive
false	is_date
false	is_year
false	is_month
false	is_day
false	is_time
false	is_author
false	is_category
false	is_tag
false	is_tax
false	is_search
false	is_feed
false	is_comment_feed
false	is_trackback
true	is_home
false	is_privacy_policy
false	is_404
false	is_embed
false	is_paged
false	is_admin
false	is_attachment
false	is_singular
false	is_robots
false	is_favicon
false	is_posts_page
false	is_post_type_archive
false	thumbnails_cached
テハ
テハ
in_the_loopとis_homeがtrueなのにゃ。
ワープ
ワープ
ループの中なら次のコードで投稿情報が見れるにゃ。

$postの中身をファイルに出力

error_log(print_r($post, true), 3, ABSPATH . "debug.log" );

debug.log

WP_Post Object
(
    [ID] => 1
    [post_author] => 1
    [post_date] => 2020-04-30 12:13:28
    [post_date_gmt] => 2020-04-30 12:13:28
    [post_content] => 
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
    [post_title] => Hello world!
    [post_excerpt] =>
    [post_status] => publish
    [comment_status] => open
    [ping_status] => open
    [post_password] =>
    [post_name] => hello-world
    [to_ping] =>
    [pinged] =>
    [post_modified] => 2020-04-30 12:13:28
    [post_modified_gmt] => 2020-04-30 12:13:28
    [post_content_filtered] =>
    [post_parent] => 0
    [guid] => http://debug.local/?p=1
    [menu_order] => 0
    [post_type] => post
    [post_mime_type] =>
    [comment_count] => 1
    [filter] => raw
)
テハ
テハ
ページに表示したい情報があればこの変数を使えばいいのにゃ。
ワープ
ワープ
投稿のタイトル表示には$post->post_titleではなく、テンプレートタグthe_title()を使う等、$post変数を直接参照せずテンプレートタグを使ってにゃ。テンプレートタグではフィルター・フック等WordPressのしくみで出力されるにゃ。
メリー
メリー
他にも役立つグローバル変数があるかもしれないでありますにゃ。

ココア
ココア
var_dumpはHTML要素として出力されるようだからファイルでなくブラウザに出力させるときに使うといいかもにゃ。Local特有かもしれないけどにゃ。

コメントはこちらから