在 $wp_query->posts var_dump 中获取数组值

AJD*_*DEV 1 php arrays wordpress

我有以下代码:

$posts = $wp_query->posts;
foreach($posts as $post){
    var_dump($post);
}
Run Code Online (Sandbox Code Playgroud)

这将抓取正在运行的查询的所有帖子并显示所有帖子信息。var_dump 看起来像这样:

object(WP_Post)#84 (24) { 
    ["ID"]=> int(1190) 
    ["post_author"]=> string(1) "1" 
    ["post_date"]=> string(19) "2016-10-20 14:17:55" 
    ["post_date_gmt"]=> string(19) "2016-10-20 03:17:55" 
    ["post_content"]=> string(0) "" 
    ["post_title"]=> string(21) "Chilled water systems" 
    ["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(21) "chilled-water-systems" 
    ["to_ping"]=> string(0) "" 
    ["pinged"]=> string(0) "" 
    ["post_modified"]=> string(19) "2016-10-21 11:23:49"
    ["post_modified_gmt"]=> string(19) "2016-10-21 00:23:49" 
    ["post_content_filtered"]=> string(0) "" 
    ["post_parent"]=> int(1182) 
    ["guid"]=> string(48) "http://siteurl.com" 
    ["menu_order"]=> int(0) **
    ["post_type"]=> string(4) "page"** 
    ["post_mime_type"]=> string(0) "" 
    ["comment_count"]=> string(1) "0" 
    ["filter"]=> string(3) "raw" 
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何从 var_dump 中获取 post_type 值。(粗体文字)我试过:

print_r($post['post_type']);
print_r($post[0]['post_type']);
Run Code Online (Sandbox Code Playgroud)

Nab*_*.Z. 5

尝试这个:

echo $post->post_type
Run Code Online (Sandbox Code Playgroud)

更多细节:

如果订购输出,您可以看到:

object(WP_Post)#84 (24)
{
["ID"]=> int(1190) 
["post_author"]=> string(1) "1" 
["post_date"]=> string(19) "2016-10-20 14:17:55" 
["post_date_gmt"]=> string(19) "2016-10-20 03:17:55" 
["post_content"]=> string(0) "" 
["post_title"]=> string(21) "Chilled water systems" 
["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(21) "chilled-water-systems" 
["to_ping"]=> string(0) "" 
["pinged"]=> string(0) "" 
["post_modified"]=> string(19) "2016-10-21 11:23:49" 
["post_modified_gmt"]=> string(19) "2016-10-21 00:23:49" 
["post_content_filtered"]=> string(0) "" 
["post_parent"]=> int(1182) 
["guid"]=> string(48) "http://siteurl.com" 
["menu_order"]=> int(0) 
["post_type"]=> string(4) "page" 
["post_mime_type"]=> string(0) "" 
["comment_count"]=> string(1) "0" 
["filter"]=> string(3) "raw"
}
Run Code Online (Sandbox Code Playgroud)

您有一个对象,要访问对象的字段,您必须使用->,因此,您可以将其$post->post_type用于帖子类型目标。

完整代码:

$posts = $wp_query->posts;
foreach($posts as $post){
    var_dump($post->post_type);
}
Run Code Online (Sandbox Code Playgroud)