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');
and in 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=""> </a>
<?php
}
?>
this is the code which works but only shows images. i want to have some captions for each image in the single post page. Each image should be displayed with their respective captions.
You can get the post data and then echo the excerpt.
<?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;
}