如何为特定帖子类型添加多个图片上传metabox()

我正在创建一个主题, 在其中创建了一些自定义帖子类型的产品和一些自定义元框, 以提交其各自的自定义信息, 例如其费用和有效期。
通过执行一些搜索add_theme_support(‘ post-thumbnails’ ); , 我能够添加一个特色图片列来上传与特定帖子相关的特色图片。但是它只允许我添加单个图像, 并且我想上传与一个特定的自定义帖子相关的多个图像。例如单个产品的不同图像。
为此, 我在互联网上找到了不同的解决方案, 其中一个最适合我的问题的解决方案是这个, 但同样, 它仅允许我上传一张图片, 但与特色图片不同。
WordPress是否有任何功能可以上传多个图像, 例如功能性图像上传(特别是针对单个帖子), 还是该任务有任何插件?
#1

< ?php add_action( 'admin_init', 'add_post_gallery_so_14445904' ); add_action( 'admin_head-post.php', 'print_scripts_so_14445904' ); add_action( 'admin_head-post-new.php', 'print_scripts_so_14445904' ); add_action( 'save_post', 'update_post_gallery_so_14445904', 10, 2 ); /** * Add custom Meta Box to Posts post type */ function add_post_gallery_so_14445904() { add_meta_box( 'post_gallery', 'Studio Image Uploader', 'post_gallery_options_so_14445904', 'post', // here you can set post type name 'normal', 'core' ); }/** * Print the Meta Box content */ function post_gallery_options_so_14445904() { global $post; $gallery_data = http://www.srcmini.com/get_post_meta( $post-> ID,'gallery_data', true ); // Use nonce for verification wp_nonce_field( plugin_basename( __FILE__ ), 'noncename_so_14445904' ); ?> < div id="dynamic_form"> < div id="field_wrap"> < ?php if ( isset( $gallery_data['image_url'] ) ) { for( $i = 0; $i < count( $gallery_data['image_url'] ); $i++ ) { ?> < div class="field_row"> < div class="field_left"> < div class="form_field"> < label> Image URL< /label> < input type="text" class="meta_image_url" name="gallery[image_url][]" value="http://www.srcmini.com/< ?php esc_html_e( $gallery_data['image_url'][$i] ); ?> " /> < /div> < /div> < div class="field_right image_wrap"> < img src="http://www.srcmini.com/< ?php esc_html_e( $gallery_data['image_url'][$i] ); ?> " height="48" width="48" /> < /div> < div class="field_right"> < input class="button" type="button" value="http://www.srcmini.com/Choose File" onclick="add_image(this)" /> < br /> < input class="button" type="button" value="http://www.srcmini.com/Remove" onclick="remove_field(this)" /> < /div> < div class="clear" /> < /div> < /div> < ?php } // endif } // endforeach ?> < /div> < div style="display:none" id="master-row"> < div class="field_row"> < div class="field_left"> < div class="form_field"> < label> Image URL< /label> < input class="meta_image_url" value="" type="text" name="gallery[image_url][]" /> < /div> < /div> < div class="field_right image_wrap"> < /div> < div class="field_right"> < input type="button" class="button" value="http://www.srcmini.com/Choose File" onclick="add_image(this)" /> < br /> < input class="button" type="button" value="http://www.srcmini.com/Remove" onclick="remove_field(this)" /> < /div> < div class="clear"> < /div> < /div> < /div> < div id="add_field_row"> < input class="button" type="button" value="http://www.srcmini.com/Add Field" onclick="add_field_row(); " /> < /div> < /div> < ?php }/** * Print styles and scripts */ function print_scripts_so_14445904() { // Check for correct post_type global $post; if( 'post' != $post-> post_type )// here you can set post type name return; ?> < style type="text/css"> .field_left { float:left; }.field_right { float:left; margin-left:10px; }.clear { clear:both; }#dynamic_form { width:580px; }#dynamic_form input[type=text] { width:300px; }#dynamic_form .field_row { border:1px solid #999; margin-bottom:10px; padding:10px; }#dynamic_form label { padding:0 6px; } < /style> < script type="text/javascript"> function add_image(obj) { var parent=jQuery(obj).parent().parent('div.field_row'); var inputField = jQuery(parent).find("input.meta_image_url"); tb_show('', 'media-upload.php?TB_iframe=true'); window.send_to_editor = function(html) { var url = jQuery(html).find('img').attr('src'); inputField.val(url); jQuery(parent) .find("div.image_wrap") .html('< img src="'+url+'" height="48" width="48" /> '); // inputField.closest('p').prev('.awdMetaImage').html('< img height=120 width=120 src="'+url+'"/> < p> URL: '+ url + '< /p> '); tb_remove(); }; return false; }function remove_field(obj) { var parent=jQuery(obj).parent().parent(); //console.log(parent) parent.remove(); }function add_field_row() { var row = jQuery('#master-row').html(); jQuery(row).appendTo('#field_wrap'); } < /script> < ?php }/** * Save post action, process fields */ function update_post_gallery_so_14445904( $post_id, $post_object ) { // Doing revision, exit earlier **can be removed** if ( defined( 'DOING_AUTOSAVE' ) & & DOING_AUTOSAVE ) return; // Doing revision, exit earlier if ( 'revision' == $post_object-> post_type ) return; // Verify authenticity if ( !wp_verify_nonce( $_POST['noncename_so_14445904'], plugin_basename( __FILE__ ) ) ) return; // Correct post type if ( 'post' != $_POST['post_type'] ) // here you can set post type name return; if ( $_POST['gallery'] ) { // Build array for saving post meta $gallery_data = http://www.srcmini.com/array(); for ($i = 0; $i < count( $_POST['gallery']['image_url'] ); $i++ ) { if ( '' != $_POST['gallery']['image_url'][ $i ] ) { $gallery_data['image_url'][]= $_POST['gallery']['image_url'][ $i ]; } }if ( $gallery_data ) update_post_meta( $post_id, 'gallery_data', $gallery_data ); else delete_post_meta( $post_id, 'gallery_data' ); } // Nothing received, all fields are empty, delete option else { delete_post_meta( $post_id, 'gallery_data' ); } } ?>

#2【如何为特定帖子类型添加多个图片上传metabox()】噢, 谢谢你告诉我布拉索菲洛。正确的答案是, 可以通过帖子标题下方的媒体上传按钮上传多个图像, 并可以通过使用画廊短代码(例如)在前端的画廊中显示这些图像:-
< ?php echo do_shortcode(''); ?>

    推荐阅读