在媒体窗口中选择图片后添加/更新自定义字段(WordPress)

我有一个关于wordpress的问题,我在Add / Edit Post Page中添加了一个名为Add Slider的按钮。 这是我的function.php中的代码:

//Add button to create slider add_action('media_buttons','add_my_media_button',15); function add_my_media_button(){ echo 'Add Slider'; } function include_media_button_js_file(){ wp_enqueue_script('media_button',get_bloginfo('template_directory').'/js/media_button.js',array('jquery'),'1.0',true); } add_action('wp_enqueue_media','include_media_button_js_file'); 

这是我的media_button.js代码

 jQuery(function($){ $(document).ready(function(){ $('#insert-my-media').click(open_media_window); }) function open_media_window(){ if (this.window === undefined) { this.window = wp.media({ title: 'Insert a media', library: {type:'image'}, multiple: true, button: {text:'Insert'} }); var self = this; //needed to retrieve the function below this.window.on('select',function(){ var files = self.window.state().get('selection').toArray(); var values; for (var i = 0; i < files.length; i++) { var file = files[i].toJSON(); if(values===undefined){ var values = file.url; } else{ var values = values+','+file.url; } }; wp.media.editor.insert(values); }); } this.window.open(); return false; } }); 

用户在媒体窗口中选择图片并按“插入”按钮后,会将图片的url值添加到内容编辑器的邮箱中。

我的问题是如何在自定义字段框中自动添加此值并自动添加/更新,而无需单击添加自定义字段按钮。

因此,用户可以添加/更新该图片url的自定义字段,而无需查看/检查自定义字段,以便在Wordpress中的屏幕选项的post编辑器中查看。

请帮我解决这个问题,谢谢。

我像这样修改我的jquery / js ..

 $(document).ready(function(){ // $('#insert-my-media').click(open_media_window); if($('#images_id').val() != '' && $('#images_url').val() != ''){ $('#open_media').text("Edit Slider"); } $('#open_media').click(function(e){ e.preventDefault(); var target = $('#images_id'); var target_url = $('#images_url'); var btnSave = $('#publishing-action input.button'); if(target.val() == '' && target_url.val() == ''){ var wpmedia = wp.media({ title: 'Insert a media', library: {type:'image'}, multiple: true, button: {text:'Insert'} }); wpmedia.on('select', function(){ var ids = []; var urls = []; var models = wpmedia.state().get('selection').toArray(); for (var i = 0; i < models.length; i++) { var file = models[i].toJSON(); ids.push(file.id); urls.push(file.url); }; target.val(ids.join(",")); target_url.val(urls.join(",")); $('#deleting_slider').val(""); $('#open_media').text("Adding..."); btnSave.click(); }); wpmedia.open(); }else{ wp.media.gallery .edit('[gallery ids="'+ target.val() +'" urls="'+ target_url.val() +'"]') .on('update', function(g){ var ids = []; var urls = []; for (var i = 0; i < g.models.length; i++) { var file = g.models[i].toJSON(); ids.push(file.id); urls.push(file.url); }; target.val(ids.join(",")); target_url.val(urls.join(",")); $('#deleting_slider').val(""); $('#open_media').text("Editing..."); btnSave.click(); }); } }); $('#save_desc').click(function(e){ e.preventDefault(); var target = $('#desc_editor'); var btnSave = $('#publishing-action input.button'); target.val(target.val()); btnSave.click(); }); $('#delete_slider').click(function(e){ e.preventDefault(); /*var target = $('#images_id'); var target_url = $('#images_url');*/ var btnSave = $('#publishing-action input.button'); /*target.val(""); target_url.val("");*/ $('#deleting_slider').val("Deleting..."); $('#delete_slider').text("Deleting..."); btnSave.click(); }); }); 

然后我创建名为metabox.php文件来创建元数据metabox.php

 ID, 'gallery_images', true); $urls = get_post_meta($post->ID,'images',true); ?> Add Slider 

Delete Slider 'names' ) ); /*$termsname = $terms[0]->name;*/ if(strlen($terms[1]) > strlen($terms[0])){ $term = $terms[1]; } else{ $term = $terms[0]; } $sldata = ''; update_post_meta($post_id, 'slider', $sldata); update_post_meta($post_id, 'gallery_images', $ids); update_post_meta($post_id, 'images', $urls); if(isset($_POST['deleting_slider_post_meta']) && $_POST['deleting_slider_post_meta'] != ""){ delete_post_meta($post_id, 'slider', $sldata); delete_post_meta($post_id, 'gallery_images', $ids); delete_post_meta($post_id, 'images', $urls); } } function koplan_show_maps_metabox($post){ $desc = get_post_meta($post->ID,'mapsdesc',true); if($desc!=""){ ?>
Save

我说问题解决了,案件结案了。 谢谢大家,谢谢stackoverflow