我正在尝试以编程方式将图像上传到媒体库,方法是使用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 );
}
我实际上找到了一个非常简单的方法......它并没有解决我的问题,因为我已经采用了不同的方式。
媒体项的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 );
}