WP API上的媒体集图像URL而不是ID

时间:2020-09-11 作者:Ravi Chauhan

我在json响应中得到了这一点

"Gallery Images": [
    "1833",
    "1834",
    "1835"
],
这些是我自定义帖子库的ID,我需要获取每个ID的URL。我没有找到任何解决方案,所有图片都来自自定义域。我的领域叫做_job\\u gallery\\u images“;

任何帮助都将不胜感激。

似乎我甚至没有修改json响应,因为我激活了一个插件,关闭它让我在函数中声明了我的meta。php文件,不,我有这个。

`add\\u action(\'rest\\u api\\u init\',\'register\\u custom\\u fields\',1,1);

function register_custom_fields(){

  register_rest_field(
    \'job_listing\',
    \'gallery\',
    array(
      \'get_callback\' => \'show_image\'
    )
  );

}

function show_main_image($object, $field_name, $request){
  $custom_fields = get_post_custom($object[\'id\']);
  $main_image = $custom_fields[\'_job_gallery_images\'];

  return $main_image;
}`
但仍然没有运气,现在_job\\u gallery\\u images“;端点似乎为空我需要响应所有url而不是ID

1 个回复
SO网友:botondcs

看看wp_get_attachment_image_url 要获取图像的URL,请执行以下操作:https://developer.wordpress.org/reference/functions/wp_get_attachment_image_url/

wp_get_attachment_url 要获取图像以外的附件的URL,请执行以下操作:https://developer.wordpress.org/reference/functions/wp_get_attachment_url/.

这些函数仅返回URL,您可以这样使用它们:

// your JSON
$json = \'
    {
        "Gallery Images": [
            "1833",
            "1834",
            "1835"
        ]
    }
\';

// convert it to PHP array
$array = get_object_vars( json_decode( $json ) );

// loop through array and get the image URLs
foreach ( $array[\'Gallery Images\'] as $id ) {
    $image_url = wp_get_attachment_image_url( $id );
}
您还可以检索不仅仅是URL,wp_get_attachment_image_src 例如,还返回图像文件的宽度和高度:https://developer.wordpress.org/reference/functions/wp_get_attachment_image_src/.