2016-05-06 4 views
0
add_action('init', 'create_services_box'); 
function create_services_box() { 
    register_post_type('Services', 
     array(
      'labels' => array(
       'name' => 'Services', 
       'singular_name' => 'Service', 
       ), 
      'public' => true, 
      'menu_position' => 15, 
      'supports' => array('comments', 'thumbnail',), 
      'taxonomies' => array(''), 
      'has_archive' => true 
     ) 
    ); 
} 


add_filter('rwmb_meta_boxes', 'services_meta_boxes'); 
function services_meta_boxes($meta_boxes2) { 
    $meta_boxes2[] = array(
     'title'  => __('Service Metabox ', 'textdomain'), 
     'post_types' => array('Services'), 
     'fields'  => array(

      array(
       'id' => 'Service_box_title', 
       'name' => __('Title :-', 'textdomain'), 
       'type' => 'text', 
      ), 

      array(
       'name'    => __('Image Advanced Upload', 'textdomain'), 
       'id'    => "service_img", 
       'type'    => 'image_advanced', 
       'max_file_uploads' => 1, 
      ),   
     ), 
    ); 
    return $meta_boxes2; 
} 

カスタムポストタイプ - >サービスを作成し、META BOXプラグインを使用しましたが、適切な出力が得られませんでした更新後に保存されていません、エラーが何であるか教えてください私はカスタムポストタイプを使用し、カスタムポストタイプでメタボックスを使用しています

答えて

0

コードの下にreplcaeしてくださいできますか?確認後

add_action('init', 'create_services_box'); 
function create_services_box() { 
    register_post_type('Services', 
     array(
      'labels' => array(
       'name' => 'Services', 
       'singular_name' => 'Service', 
       ), 
      'public' => true, 
      'menu_position' => 15, 
      'supports' => array('comments', 'thumbnail',), 
      'taxonomies' => array(''), 
      'has_archive' => true 
     ) 
    ); 
} 


//Add Metabox 
add_action('add_meta_boxes', 'add_upload_file_metaboxes'); 

function add_upload_file_metaboxes() { 
    add_meta_box('swp_file_upload', 'File Upload', 'swp_file_upload', 'Services', 'normal', 'default'); 
} 


function swp_file_upload() { 
    global $post; 
    // Noncename needed to verify where the data originated 
    echo '<input type="hidden" name="service_noncename" id="service_noncename" value="'. 
    wp_create_nonce(plugin_basename(__FILE__)). 
    '" />'; 
    global $wpdb; 
    $strFile = get_post_meta($post -> ID, $key = 'service_file', true); 
    $media_file = get_post_meta($post -> ID, $key = '_wp_attached_file', true); 
    if (!empty($media_file)) { 
     $strFile = $media_file; 
    } ?> 


    <script type = "text/javascript"> 

     // Uploading files 
     var file_frame; 
    jQuery('#upload_image_button').live('click', function(service) { 

     service.preventDefault(); 

     // If the media frame already exists, reopen it. 
     if (file_frame) { 
      file_frame.open(); 
      return; 
     } 

     // Create the media frame. 
     file_frame = wp.media.frames.file_frame = wp.media({ 
      title: jQuery(this).data('uploader_title'), 
      button: { 
       text: jQuery(this).data('uploader_button_text'), 
      }, 
      multiple: false // Set to true to allow multiple files to be selected 
     }); 

     // When a file is selected, run a callback. 
     file_frame.on('select', function(){ 
      // We set multiple to false so only get one image from the uploader 
      attachment = file_frame.state().get('selection').first().toJSON(); 

      // here are some of the variables you could use for the attachment; 
      //var all = JSON.stringify(attachment);  
      //var id = attachment.id; 
      //var title = attachment.title; 
      //var filename = attachment.filename; 
      var url = attachment.url; 
      //var link = attachment.link; 
      //var alt = attachment.alt; 
      //var author = attachment.author; 
      //var description = attachment.description; 
      //var caption = attachment.caption; 
      //var name = attachment.name; 
      //var status = attachment.status; 
      //var uploadedTo = attachment.uploadedTo; 
      //var date = attachment.date; 
      //var modified = attachment.modified; 
      //var type = attachment.type; 
      //var subtype = attachment.subtype; 
      //var icon = attachment.icon; 
      //var dateFormatted = attachment.dateFormatted; 
      //var editLink = attachment.editLink; 
      //var fileLength = attachment.fileLength; 

      var field = document.getElementById("service_file"); 

      field.value = url; //set which variable you want the field to have 
     }); 

     // Finally, open the modal 
     file_frame.open(); 
    }); 

    </script> 



    <div> 

     <table> 
     <tr valign = "top"> 
     <td> 
     <input type = "text" 
    name = "service_file" 
    id = "service_file" 
    size = "70" 
    value = "<?php echo $strFile; ?>" /> 
     <input id = "upload_image_button" 
    type = "button" 
    value = "Upload"> 
     </td> </tr> </table> <input type = "hidden" 
    name = "img_txt_id" 
    id = "img_txt_id" 
    value = "" /> 
     </div>  <?php 
    function admin_scripts() { 
     wp_enqueue_script('media-upload'); 
     wp_enqueue_script('thickbox'); 
    } 

    function admin_styles() { 
     wp_enqueue_style('thickbox'); 
    } 
    add_action('admin_print_scripts', 'admin_scripts'); 
    add_action('admin_print_styles', 'admin_styles'); 
} 


//Saving the file 
function save_service_meta($post_id, $post) { 
    // verify this came from the our screen and with proper authorization, 
    // because save_post can be triggered at other times 
    if (!wp_verify_nonce($_POST['service_noncename'], plugin_basename(__FILE__))) { 
     return $post -> ID; 
    } 
    // Is the user allowed to edit the post? 
    if (!current_user_can('edit_post', $post -> ID)) 
     return $post -> ID; 
    // We need to find and save the data 
    // We'll put it into an array to make it easier to loop though. 
    $service_meta['service_file'] = $_POST['service_file']; 
    // Add values of $service_meta as custom fields 

    foreach($service_meta as $key => $value) { 
     if ($post -> post_type == 'revision') return; 
     $value = implode(',', (array) $value); 
     if (get_post_meta($post -> ID, $key, FALSE)) { // If the custom field already has a value it will update 
      update_post_meta($post -> ID, $key, $value); 
     } else { // If the custom field doesn't have a value it will add 
      add_post_meta($post -> ID, $key, $value); 
     } 
     if (!$value) delete_post_meta($post -> ID, $key); // Delete if blank value 
    } 
} 
add_action('save_post', 'save_service_meta', 1, 2); // save the custom fields 
関連する問題