2016-06-09 52 views
0
 function gallery_metabox_enqueue($hook) { 
    if ('post.php' == $hook || 'post-new.php' == $hook) { 
     wp_enqueue_script('gallery-metabox', get_template_directory_uri() . '/gallery-metabox/js/gallery-metabox.js', array('jquery', 'jquery-ui-sortable')); 
     wp_enqueue_style('gallery-metabox', get_template_directory_uri() . '/gallery-metabox/css/gallery-metabox.css'); 
    } 
    } 
    add_action('admin_enqueue_scripts', 'gallery_metabox_enqueue'); 

    function add_gallery_metabox($post_type) { 
    $types = array('post', 'page', 'custom-post-type', 'gallery'); 

    if (in_array($post_type, $types)) { 
     add_meta_box(
     'gallery-metabox', 
     'Gallery', 
     'gallery_meta_callback', 
     $post_type, 
     'normal', 
     'high' 
    ); 
    } 
    } 
    add_action('add_meta_boxes', 'add_gallery_metabox'); 

    function gallery_meta_callback($post) { 
    wp_nonce_field(basename(__FILE__), 'gallery_meta_nonce'); 
    $ids = get_post_meta($post->ID, 'vdw_gallery_id', true); 

    ?> 
    <table class="form-table"> 
     <tr><td> 
     <a class="gallery-add button" href="#" data-uploader-title="Add image(s) to gallery" data-uploader-button-text="Add image(s)">Add image(s)</a> 

     <ul id="gallery-metabox-list"> 
     <?php if ($ids) : foreach ($ids as $key => $value) : $image = wp_get_attachment_image_src($value); ?> 

      <li> 
      <input type="hidden" name="vdw_gallery_id[<?php echo $key; ?>]" value="<?php echo $value; ?>"> 
      <img class="image-preview" src="<?php echo $image[0]; ?>"> 
      <a class="change-image button button-small" href="#" data-uploader-title="Change image" data-uploader-button-text="Change image">Change image</a><br> 
      <small><a class="remove-image" href="#">Remove image</a></small> 
      </li> 

     <?php endforeach; endif; ?> 
     </ul> 

     </td></tr> 
    </table> 
    <?php } 

    function gallery_meta_save($post_id) { 
    if (!isset($_POST['gallery_meta_nonce']) || !wp_verify_nonce($_POST['gallery_meta_nonce'], basename(__FILE__))) return; 

    if (!current_user_can('edit_post', $post_id)) return; 

    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; 

    if(isset($_POST['vdw_gallery_id'])) { 
     update_post_meta($post_id, 'vdw_gallery_id', $_POST['vdw_gallery_id']); 
    } else { 
     delete_post_meta($post_id, 'vdw_gallery_id'); 
    } 
    } 
    add_action('save_post', 'gallery_meta_save'); 

和single.php中在自定義後

<?php 
$images = get_post_meta($post->ID, 'vdw_gallery_id', true); 
foreach ($images as $image) { 

    ?> 
    <img src="<?php echo wp_get_attachment_url($image, 'large'); ?> " ?> " alt="" />        



             <a href="<?php echo wp_get_attachment_image_url($image, 'full'); ?> " data-rel="prettyPhoto[9788]" title="">&nbsp;</a> 
                    <?php 

} 
?> 

創建標題/字幕畫廊元框這是工作,但只顯示圖像的代碼。我想爲單個帖子頁面中的每個圖像都有一些標題。每個圖像都應顯示各自的標題。

回答

1

您可以獲取發佈數據,然後回顯摘錄。

<?php 
$images = get_post_meta($post->ID, 'vdw_gallery_id', true); 
foreach ($images as $image) { 
    $image_obj = get_post($image); 
    echo $image_obj->post_excerpt; 
}