|
|
@@ -25,7 +25,6 @@ function create_post_your_post() { |
|
|
register_taxonomy_for_object_type( 'post_tag', 'your_post' ); |
|
|
} |
|
|
add_action( 'init', 'create_post_your_post' ); |
|
|
|
|
|
function add_your_fields_meta_box() { |
|
|
add_meta_box( |
|
|
'your_fields_meta_box', // $id |
|
|
@@ -37,86 +36,81 @@ function add_your_fields_meta_box() { |
|
|
); |
|
|
} |
|
|
add_action( 'add_meta_boxes', 'add_your_fields_meta_box' ); |
|
|
|
|
|
function show_your_fields_meta_box() { |
|
|
global $post; |
|
|
$meta = get_post_meta( $post->ID, 'your_fields', true ); ?> |
|
|
|
|
|
<input type="hidden" name="your_meta_box_nonce" value="<?php echo wp_create_nonce( basename(__FILE__) ); ?>"> |
|
|
<input type="hidden" name="your_meta_box_nonce" value="<?php echo wp_create_nonce( basename(__FILE__) ); ?>"> |
|
|
|
|
|
<p> |
|
|
<label for="your_fields[text]">Input Text</label> |
|
|
<br> |
|
|
<input type="text" name="your_fields[text]" id="your_fields[text]" class="regular-text" value="<?php echo $meta['text']; ?>"> |
|
|
</p> |
|
|
<p> |
|
|
<label for="your_fields[textarea]">Textarea</label> |
|
|
<br> |
|
|
<textarea name="your_fields[textarea]" id="your_fields[textarea]" rows="5" cols="30" style="width:500px;"><?php echo $meta['textarea']; ?></textarea> |
|
|
</p> |
|
|
<p> |
|
|
<label for="your_fields[checkbox]">Checkbox |
|
|
<p> |
|
|
<label for="your_fields[text]">Input Text</label> |
|
|
<br> |
|
|
<input type="text" name="your_fields[text]" id="your_fields[text]" class="regular-text" value="<?php echo $meta['text']; ?>"> |
|
|
</p> |
|
|
<p> |
|
|
<label for="your_fields[textarea]">Textarea</label> |
|
|
<br> |
|
|
<textarea name="your_fields[textarea]" id="your_fields[textarea]" rows="5" cols="30" style="width:500px;"><?php echo $meta['textarea']; ?></textarea> |
|
|
</p> |
|
|
<p> |
|
|
<label for="your_fields[checkbox]">Checkbox |
|
|
<input type="checkbox" name="your_fields[checkbox]" value="checkbox" <?php if ( $meta['checkbox'] === 'checkbox' ) echo 'checked'; ?>> |
|
|
</label> |
|
|
</p> |
|
|
<p> |
|
|
<label for="your_fields[select]">Select Menu</label> |
|
|
<br> |
|
|
<select name="your_fields[select]" id="your_fields[select]"> |
|
|
</p> |
|
|
<p> |
|
|
<label for="your_fields[select]">Select Menu</label> |
|
|
<br> |
|
|
<select name="your_fields[select]" id="your_fields[select]"> |
|
|
<option value="option-one" <?php selected( $meta['select'], 'option-one' ); ?>>Option One</option> |
|
|
<option value="option-two" <?php selected( $meta['select'], 'option-two' ); ?>>Option Two</option> |
|
|
</select> |
|
|
</p> |
|
|
<p> |
|
|
<label for="your_fields[image]">Image Upload</label><br> |
|
|
<input type="text" name="your_fields[image]" id="your_fields[image]" class="meta-image regular-text" value="<?php echo $meta['image']; ?>"> |
|
|
<input type="button" class="button image-upload" value="Browse"> |
|
|
</p> |
|
|
<div class="image-preview"><img src="<?php echo $meta['image']; ?>" style="max-width: 250px;"></div> |
|
|
|
|
|
|
|
|
<script> |
|
|
jQuery(document).ready(function ($) { |
|
|
</p> |
|
|
<p> |
|
|
<label for="your_fields[image]">Image Upload</label><br> |
|
|
<input type="text" name="your_fields[image]" id="your_fields[image]" class="meta-image regular-text" value="<?php echo $meta['image']; ?>"> |
|
|
<input type="button" class="button image-upload" value="Browse"> |
|
|
</p> |
|
|
<div class="image-preview"><img src="<?php echo $meta['image']; ?>" style="max-width: 250px;"></div> |
|
|
|
|
|
// Instantiates the variable that holds the media library frame. |
|
|
var meta_image_frame; |
|
|
// Runs when the image button is clicked. |
|
|
$('.image-upload').click(function (e) { |
|
|
// Prevents the default action from occuring. |
|
|
e.preventDefault(); |
|
|
|
|
|
var meta_image = $(this).parent().children('.meta-image'); |
|
|
|
|
|
// If the frame already exists, re-open it. |
|
|
if (meta_image_frame) { |
|
|
meta_image_frame.open(); |
|
|
return; |
|
|
} |
|
|
// Sets up the media library frame |
|
|
meta_image_frame = wp.media.frames.meta_image_frame = wp.media({ |
|
|
title: meta_image.title, |
|
|
button: { |
|
|
text: meta_image.button |
|
|
} |
|
|
}); |
|
|
// Runs when an image is selected. |
|
|
meta_image_frame.on('select', function () { |
|
|
// Grabs the attachment selection and creates a JSON representation of the model. |
|
|
var media_attachment = meta_image_frame.state().get('selection').first().toJSON(); |
|
|
// Sends the attachment URL to our custom image input field. |
|
|
meta_image.val(media_attachment.url); |
|
|
|
|
|
//var image_url = meta_image.val(); |
|
|
//$(selected).closest('div').find('.image-preview').children('img').attr('src', image_url); |
|
|
}); |
|
|
// Opens the media library frame. |
|
|
meta_image_frame.open(); |
|
|
}); |
|
|
}); |
|
|
</script> |
|
|
|
|
|
<?php } |
|
|
<script> |
|
|
jQuery(document).ready(function ($) { |
|
|
// Instantiates the variable that holds the media library frame. |
|
|
var meta_image_frame; |
|
|
// Runs when the image button is clicked. |
|
|
$('.image-upload').click(function (e) { |
|
|
// Get preview pane |
|
|
var meta_image_preview = $(this).parent().parent().children('.image-preview'); |
|
|
// Prevents the default action from occuring. |
|
|
e.preventDefault(); |
|
|
var meta_image = $(this).parent().children('.meta-image'); |
|
|
// If the frame already exists, re-open it. |
|
|
if (meta_image_frame) { |
|
|
meta_image_frame.open(); |
|
|
return; |
|
|
} |
|
|
// Sets up the media library frame |
|
|
meta_image_frame = wp.media.frames.meta_image_frame = wp.media({ |
|
|
title: meta_image.title, |
|
|
button: { |
|
|
text: meta_image.button |
|
|
} |
|
|
}); |
|
|
// Runs when an image is selected. |
|
|
meta_image_frame.on('select', function () { |
|
|
// Grabs the attachment selection and creates a JSON representation of the model. |
|
|
var media_attachment = meta_image_frame.state().get('selection').first().toJSON(); |
|
|
// Sends the attachment URL to our custom image input field. |
|
|
meta_image.val(media_attachment.url); |
|
|
meta_image_preview.children('img').attr('src', media_attachment.url); |
|
|
}); |
|
|
// Opens the media library frame. |
|
|
meta_image_frame.open(); |
|
|
}); |
|
|
}); |
|
|
</script> |
|
|
|
|
|
<?php } |
|
|
function save_your_fields_meta( $post_id ) { |
|
|
// verify nonce |
|
|
if ( !wp_verify_nonce( $_POST['your_meta_box_nonce'], basename(__FILE__) ) ) { |
|
|
@@ -137,7 +131,6 @@ function save_your_fields_meta( $post_id ) { |
|
|
|
|
|
$old = get_post_meta( $post_id, 'your_fields', true ); |
|
|
$new = $_POST['your_fields']; |
|
|
|
|
|
if ( $new && $new !== $old ) { |
|
|
update_post_meta( $post_id, 'your_fields', $new ); |
|
|
} elseif ( '' === $new && $old ) { |
|
|
|