我想添加许多具有不同输入的元函数。我添加了metabox,并且我想分别调用每个metabox。示例代码:
add_action('add_meta_boxes', 'dm_meta_box');
function dm_meta_box() {
add_meta_box("dm-slides", "Slider", 'dm_slides_box', "dm", "normal");
}
function dm_slides_box() {
global $post;
$dm_slides = get_post_meta($post->ID, "_dm_slides231211ab", true);
$dm_slides = ($dm_slides != '') ? json_decode($dm_slides) : array();
$dm_title = get_post_meta($post->ID, "_dm_slides231211bc", true);
$dm_title = ($dm_title != '') ? json_decode($dm_title) : array();
$dm_link = get_post_meta($post->ID, "_dm_slides231211bf", true);
$dm_link = ($dm_link != '') ? json_decode($dm_link) : array();
$html = '<input type="hidden" name="dm_slider_box_nonce" value="' . wp_create_nonce(basename(__FILE__)) . '" />';
...
}保存:
add_action('save_post', 'dm_save_slider_info');
function dm_save_slider_info($post_id) {
if (!wp_verify_nonce($_POST['dm_slider_box_nonce'], basename(__FILE__))) {
return $post_id;
}
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return $post_id;
}
if ('dm' == $_POST['post_type'] && current_user_can('edit_post', $post_id)) {
$dm_slides = (isset($_POST['dm_slider_fields']) ? $_POST['dm_slider_fields'] : '');
$dm_slides = strip_tags(json_encode($dm_slides));
update_post_meta($post_id, "_dm_slides231211ab", $dm_slides);
$dm_title = (isset($_POST['dm_title']) ? $_POST['dm_title2'] : '');
$dm_title = strip_tags(json_encode($dm_title));
update_post_meta($post_id, "_dm_slides231211bc", $dm_title);
$dm_link = (isset($_POST['dm_link']) ? $_POST['dm_link2'] : '');
$dm_link = strip_tags(json_encode($dm_link));
update_post_meta($post_id, "_dm_slides231211bf", $dm_link);
} else {
return $post_id;
}
}我想问题出在save post中,但我试过了,但还是弄不明白。我做错了什么?
发布于 2018-09-11 19:06:56
我想你错过了
global $post; 在function dm_save_slider_info()中
https://stackoverflow.com/questions/52272883
复制相似问题