你的想法行不通的原因是,get_post
返回post对象,而不是数组(如果未手动设置)。
这是引用自WordPress code reference:
当$output为OBJECT时,将返回一个WP\\u Post实例。
这是的默认输出类型get_post()
.如果需要实现一个数据数组,然后使用JSON对其进行编码,请执行以下操作:
// Let\'s retrieve the post object
$post = get_post( $post_id );
// Set up the post data to use in our code
setup_postdata($post);
// Create an empty array for the data
$json_input = array();
$json_input[\'image\'] = get_the_post_thumbnail( $post->ID, \'medium\' );
$json_input[\'excerpt\'] = get_the_excerpt();
$json_input[\'content\'] = get_the_content();
$json_input[\'title\'] = get_the_title();
// Now, we should reset the post data to avoid conflict
wp_reset_postdata();
// Our data is ready to be encoded, just, DO IT!
$json = json_encode($json_input);
但是,您可以设置
get_post()
要返回数组,请更改第二个参数:
get_post( $post_id, ARRAY_A );