(前端AJAX)获取带有图片缩略图的帖子数据?

时间:2017-06-10 作者:blaasvaer

我通过AJAX使用post id返回数据。现在,什么是“合并”图像缩略图的最佳方法(get_the_post_thumbnail( $id, \'medium\' ) ) 从服务器返回的数据?

我需要将其作为单个JSON对象传递给模板(所有这些都很好,只需要图像)。

简单的想法:

$post = get_post( $post_id );

$post[\'image\'] = get_the_post_thumbnail( $post_id, \'medium\' );

echo json_encode( $post );

1 个回复
最合适的回答,由SO网友:Johansson 整理而成

你的想法行不通的原因是,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 );

结束

相关推荐

执行AJAX请求总是输出0

我正在尝试从我的主题中执行ajax请求header.php 文件我读到我必须使用admin-ajax.php 文件来实现这一点。所以我找了一些例子this 一中的我的代码header.php 文件如下所示:<script> $(document).ready(function(){ $(\'.test a\').click(function(){ var className = $(this).attr(\'class\');