以编程方式将图像上传到Wordpress

时间:2019-02-27 11:34:51

标签: php wordpress

我试图通过采用ACF网址,通过Wordpress函数运行它,然后更新分类法字段,以编程方式将图像上传到媒体库。

我知道$icon是正确的URL,而update_field函数是正确的。

出问题的部分是上传图像部分。我认为我正确地遵循了documentation,但是没有图像上传到库中,并且分类法中的ACF字段都没有连接。

我要去哪里错了?

    // Icon
    $icon = get_field('icon', $term->taxonomy . '_' . $term->term_id);
    $field_key = "field_5ad5e7e5e295c";

    if($icon != "") {
      // The ID of the post this attachment is for.
      $return = "id";

      // Make sure that this file is included, as wp_generate_attachment_metadata() depends on it.
      require_once(ABSPATH . 'wp-admin/includes/media.php');
      require_once(ABSPATH . 'wp-admin/includes/file.php');
      require_once(ABSPATH . 'wp-admin/includes/image.php');

      // Generate the metadata for the attachment, and update the database record.
      $attach_id = media_sideload_image($icon, $post_id, $desc, id);


      update_field( $field_key, $attach_id, $taxonomy.'_'.$french );
      update_field( $field_key, $attach_id, $taxonomy.'_'.$german );
      update_field( $field_key, $attach_id, $taxonomy.'_'.$italian );
      update_field( $field_key, $attach_id, $taxonomy.'_'.$russian );
      update_field( $field_key, $attach_id, $taxonomy.'_'.$spanish );
    }

1 个答案:

答案 0 :(得分:0)

我实际上找到了一种非常简单的方法...它无法解决我的问题,因为我采用了不同的方法。

媒体项目的url显然已经存在于媒体库中。因此,我只需要通过url来查找它的项目ID。

    // Icon
    $icon = get_field('icon', $term->taxonomy . '_' . $term->term_id);
    $field_key = "field_5ad5e7e5e295c";

    if($icon != "") {

      $item = attachment_url_to_postid( $icon );

      update_field( $field_key, $item, $taxonomy.'_'.$french );
      update_field( $field_key, $item, $taxonomy.'_'.$german );
      update_field( $field_key, $item, $taxonomy.'_'.$italian );
      update_field( $field_key, $item, $taxonomy.'_'.$russian );
      update_field( $field_key, $item, $taxonomy.'_'.$spanish );
    }