我试图通过采用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 );
}
答案 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 );
}