我有一个由 WP Store Locator 插件创建的自定义帖子类型。我已将元字段添加到帖子(商店列表)以将其链接到用户,以便用户可以编辑某些字段(如果他们拥有商店)。这适用于除媒体以外的所有领域。我对如何实现这一点感到有些困惑,因为媒体 postmeta(来自帖子的特色图像或只是自定义图像字段)具有自己的链接附件元数据。
我希望用户能够从他们的用户个人资料页面编辑/上传他们自己的特色图像或图像(作为自定义元字段)并将其保存到相关帖子中。我能够获取帖子 ID 并保存文本字段,但不能将图像保存/关联到帖子。
如果可能的话,我想使用 Wordpress 媒体上传功能,以使用户保持简单。
这是我当前的功能:
function tpo_save_extra_register_select_field_admin( $customer_id ){
$userid = get_current_user_id();
global $wpdb;
//get array of all the post_ids where the wpsl_store_owner_id meta matches the current users ID
$store_owners_post_ids = $wpdb->get_results( "SELECT post_id FROM wp_postmeta WHERE meta_key = 'wpsl_store_owner_id' AND meta_value = $userid");
foreach ( $store_owners_post_ids as $store_owners_post_id ) {
$store_id = $store_owners_post_id->post_id;
//set a dynamic input id for each field to be updated
$input_id = 'price_per_litre'.$store_id ;
$input_id_name = 'store_name'.$store_id ;
$input_id_address = 'store_address'.$store_id ;
$input_id_pictures = 'pictures'.$store_id ;
//if its set then save it
if ( isset( $_POST[$input_id] ) ) {
update_post_meta( $store_owners_post_id->post_id, 'wpsl_price_per_litre', $_POST[$input_id] );
}
if ( isset( $_POST[$input_id_name] ) ) {
$content = array(
'ID' => $store_id,
'post_title' => $_POST[$input_id_name]
);
wp_update_post($content) ;
}
if ( isset( $_POST[$input_id_address] ) ) {
update_post_meta( $store_owners_post_id->post_id, 'wpsl_address', $_POST[$input_id_address] );
}
//DO SOMETHING HERE TO UPLOAD AN IMAGE AND LINK TO post_id
if ( isset( $_POST[$input_id_pictures] ) ) {
update_post_meta( $store_owners_post_id->post_id, 'wpsl_pictures', $_POST[$input_id_pictures] );
}
}
}