変数の表示
条件分岐タグがたくさんあるけど、どの条件分岐タグが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特有かもしれないけどにゃ。