将 ACF 图像大小和 url 解析为 JSON

Parse ACF image size and url into JSON

我正在尝试从具有自定义图像大小的 ACF 获取图像 URL 以回显到 JSON。

不确定为什么在我尝试查询数据时返回 false

这是我的:

args = array(
'post_type' => 'people',
'post_status' => 'publish',
'posts_per_page' => -1,
'order' => 'ASC'
);

$query = new WP_Query( $args );

$people_out = array();

while( $query->have_posts() ) : $query->the_post();

$image = get_field('photo');
$size = "medium";
$img = wp_get_attachment_image_src( $image, $size );

$people_out[] = array(
'name' => get_the_title(),
'email' => get_field('email'),
'image' => $img
);

endwhile;

wp_reset_query();

echo json_encode( $people_out );

不确定使用 wp_get_attachment_image_src 是否正确,或者我这样做是否完全错误。

wp_get_attachment_image_src returns 数组 (url, width, height, is_intermediate) 或如果没有可用图像则为 false。

因此请确保您使用 acf 函数 get_field() 获得的字段被命名为 photo

进一步挖掘并意识到 get_field('photo'); 将 return 所有必要的数据 如果 图像字段设置为 ImageID。

一旦我设置了它,我就可以使用 get_field('photo'); 然后以这种方式检索所有信息而无需 wp_get_attachment_image_src

所以我现在只需要这个:

$image = get_field('photo');
$img = $image['sizes']['medium'];

而不是这个:

$image = get_field('photo');
$size = "medium";
$img = wp_get_attachment_image_src( $image, $size );