【问题标题】:Parse ACF image size and url into JSON将 ACF 图像大小和 url 解析为 JSON
【发布时间】:2016-12-08 22:15:56
【问题描述】:

我正在尝试从具有自定义图像大小的 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 是否正确,或者我是否完全错误。

【问题讨论】:

    标签: php json wordpress advanced-custom-fields


    【解决方案1】:

    wp_get_attachment_image_src 返回一个数组 (url, width, height, is_intermediate),如果没有可用的图像,则返回 false。

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

    【讨论】:

    • 嗯,字段名称匹配正确,所以我不确定它还能是什么?
    • 您是否尝试过使用 ACF 的 the_field() 帮助函数来查看是否获得完整的图像 url?
    【解决方案2】:

    做了更多的挖掘,发现get_field('photo'); 将返回所有必要的数据如果图像字段设置为 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 );
    

    【讨论】:

      猜你喜欢
      • 2012-03-05
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多