Skip to content

Instantly share code, notes, and snippets.

@mohnatus
Last active April 9, 2020 11:31
Show Gist options
  • Select an option

  • Save mohnatus/7fdd6c72ffeb4c78e4adf8649df58775 to your computer and use it in GitHub Desktop.

Select an option

Save mohnatus/7fdd6c72ffeb4c78e4adf8649df58775 to your computer and use it in GitHub Desktop.
<?php
add_action('add_meta_boxes', function() {
add_meta_box('metabox_name', 'Metabox Title', 'metaboxCallback', array('post', 'page'), 'normal', 'default');
}, 1);
function metaboxCallback($post) {
$value1 = get_post_meta($post->ID, 'meta_prefix_'.'meta_field_name_1', 1);
$value2 = get_post_meta($post->ID, 'meta_prefix_'.'meta_field_name_2', 1);
?>
<input type="text" name="meta_prefix[meta_field_name_1]" value="<?= $value1 ?>">
<input type="text" name="meta_prefix[meta_field_name_2]" value="<?= $value2 ?>">
<input type="hidden" name="metabox_nonce" value="<?= wp_create_nonce(__FILE__); ?>" />
<?php
}
add_action('save_post', 'saveMetaCallback', 0);
function saveMetaCallback($postId) {
if (!isset($_POST['meta_prefix'])) return false;
if (
empty($_POST['meta_prefix'])
|| !wp_verify_nonce($_POST['metabox_nonce'], __FILE__)
|| wp_is_post_autosave($postId )
|| wp_is_post_revision($postId )
) return false;
$fields = array_map(
'sanitize_text_field',
$_POST['meta_prefix']
);
foreach($fields as $key=>$value) {
$fieldName = 'meta_prefix_'.$key;
if(empty($value)){
delete_post_meta($postId, $fieldName);
continue;
}
update_post_meta($postId, $fieldName, $value);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment