Created
February 20, 2017 11:08
-
-
Save Maden-maxi/236b214e984d11d0555a81110afdc0bd to your computer and use it in GitHub Desktop.
Adding metabox to post or page
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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