Snippi
A super awesome snippet tool.
- 1.
// Functions for setting up Brandbox Options
- 2.
function dsslider_manager_meta_options(){
- 3.
- 4.
global $custom_meta_fields, $post;
- 5.
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
- 6.
// (integer) (optional) The post ID whose custom fields will be retrieved.
- 7.
// Default: Current post
- 8.
return $post_id;
- 9.
- 10.
echo '<div class="dsslider_manager_extras">';
- 11.
- 12.
- 13.
// Use nonce for verification
- 14.
echo '<input type="hidden" name="dsmeta_box_nonce" value="', wp_create_nonce(basename(__FILE__)), '" />';
- 15.
- 16.
- 17.
foreach ($custom_meta_fields as $field) {
- 18.
// Get value of this field if it exists for this post
- 19.
$meta = get_post_meta($post->ID, $field['id'], true);
- 20.
- 21.
- 22.
switch ($field['type']) {
- 23.
- 24.
// Repeatable
- 25.
case 'repeatable':
- 26.
$field_titles = wp_list_pluck( $repeatable_fields, 'repeatable_label' );
- 27.
$field_titles = array_filter( $field_titles ); // remove empty values
- 28.
- 29.
$i = 0;
- 30.
// create an empty array
- 31.
if ( $meta == '' || $meta == array() ) {
- 32.
$keys = wp_list_pluck( $repeatable_fields, 'repeatable_id' );
- 33.
$meta = array ( array_fill_keys( $keys, null ) );
- 34.
}
- 35.
$meta = array_values( $meta );
- 36.
- 37.
foreach( $meta as $row ) {
- 38.
- 39.
foreach ( $custom_meta_fields as $field ) {
- 40.
extract( $field );
- 41.
- 42.
switch ($field['type']) {
- 43.
- 44.
// Text
- 45.
case 'text':
- 46.
echo '<input type="text" name="' . $field['id'] . '[' .$i. ']' . '" id="' . $field['id'] . '" value="' . $meta[$i][$id] . '" size="30" />';
- 47.
break;
- 48.
- 49.
} // End switch statement
- 50.
- 51.
} // End foreach
- 52.
$i++;
- 53.
} // End foreach meta as row
- 54.
break;
- 55.
- 56.
// Image
- 57.
case 'image':
- 58.
$image = get_template_directory_uri().'/images/image.png';
- 59.
- 60.
echo '<span class="default_image" style="display:none">' . $image . '</span>';
- 61.
- 62.
if ($meta) {
- 63.
$image = wp_get_attachment_image_src($meta, 'thumbnail');
- 64.
$image = $image[0];
- 65.
- 66.
} // End if statement
- 67.
- 68.
echo '<input name="' . $field['id'] .'" type="hidden" class="upload_image" value="' . $meta . '" />';
- 69.
- 70.
echo '<img src="' . $image . '" class="preview_image" alt="" />';
- 71.
- 72.
echo '<input type="button" class="button add-image" value="Add Image">';
- 73.
- 74.
echo '<small><a href="#" class="remove-image">Remove Image</a></small>';
- 75.
break;
- 76.
- 77.
// Text
- 78.
case 'text':
- 79.
echo '<input type="text" name="' . $field['id'] . '" id="' . $field['id'] . '" value="' . $meta . '" size="30" />';
- 80.
break;
- 81.
- 82.
} // End switch statement
- 83.
- 84.
- 85.
} // End foreach loop
- 86.
- 87.
- 88.
echo '</div>'; // End .dsslider_manager_extras
- 89.
}
- 90.