Skip to content

Instantly share code, notes, and snippets.

@Maden-maxi
Created February 20, 2017 11:08
Show Gist options
  • Save Maden-maxi/236b214e984d11d0555a81110afdc0bd to your computer and use it in GitHub Desktop.
Save Maden-maxi/236b214e984d11d0555a81110afdc0bd to your computer and use it in GitHub Desktop.
Adding metabox to post or page
<?php
/**
* Created by PhpStorm.
* User: anonymous
* Date: 03.09.16
* Time: 13:07
*/
// привязываем функции сотворения метабокса и
// сохранения данных к соответствующим хукам:
add_action('add_meta_boxes', 'car_params_init');
add_action('save_post', 'car_params_save');
function car_params_init() {
add_meta_box('car_params', 'Параметри машини',
'car_params_showup', 'post', 'normal', 'high');
}
function car_params_showup($post, $box) {
/*price*/
// получение существующих метаданных
$price = get_post_meta($post->ID, '_price', true);
// скрытое поле с одноразовым кодом
wp_nonce_field('price_action', 'price_nonce');
// поле с метаданными
echo '<p><label for="price_field">Ціна:</label><br><input id="price_field" type="text" name="price_field" value="'
. esc_attr($price) . '"/></p>';
/*description*/
// получение существующих метаданных
$desc = get_post_meta($post->ID, '_desc', true);
// скрытое поле с одноразовым кодом
wp_nonce_field('desc_action', 'desc_nonce');
// поле с метаданными
echo '<p><label for="desc_field">Опис:</label><br><textarea id="desc_field" rows="5" cols="40" type="text" name="desc_field" style="width: 100%">'
. esc_attr($desc) . '</textarea></p>';
/*newest*/
// получение существующих метаданных
$newest = get_post_meta($post->ID, '_newest', true);
// скрытое поле с одноразовым кодом
wp_nonce_field('newest_action', 'newest_nonce');
// поле с метаданными
echo '<p><label for="newest_field">Статус:</label><br> <input id="newest_field" type="text" name="newest_field" value="' . esc_attr($newest) .'"></p>';
}
function car_params_save($postID) {
/*price*/
// пришло ли поле наших данных?
if (!isset($_POST['price_field']))
return;
// не происходит ли автосохранение?
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
return;
// не ревизию ли сохраняем?
if (wp_is_post_revision($postID))
return;
// проверка достоверности запроса
check_admin_referer('price_action', 'price_nonce');
// коррекция данных
$price = sanitize_text_field($_POST['price_field']);
// запись
update_post_meta($postID, '_price', $price);
/*desc*/
// пришло ли поле наших данных?
if (!isset($_POST['desc_field']))
return;
// не происходит ли автосохранение?
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
return;
// не ревизию ли сохраняем?
if (wp_is_post_revision($postID))
return;
// проверка достоверности запроса
check_admin_referer('desc_action', 'desc_nonce');
// коррекция данных
$desc = sanitize_text_field($_POST['desc_field']);
// запись
update_post_meta($postID, '_desc', $desc);
/*newest*/
// пришло ли поле наших данных?
if (!isset($_POST['newest_field']))
return;
// не происходит ли автосохранение?
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
return;
// не ревизию ли сохраняем?
if (wp_is_post_revision($postID))
return;
// проверка достоверности запроса
check_admin_referer('newest_action', 'newest_nonce');
// коррекция данных
$newest = sanitize_text_field($_POST['newest_field']);
// запись
update_post_meta($postID, '_newest', $newest);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment