/ / Не мога да запазя персонализирани данни от метабокс - wordpress, персонализиран-пост-тип, мета-полета

Не може да се запазват персонализирани метабокс данни - wordpress, custom-post-type, meta-boxes

Направих персонализиран метабокс в потребителска публикацияТип. Моят персонализиран метабокс включва два радио бутона. Но без значение какво правя, не мога да запазя данни в моята база данни. Wordpress го записва в данните в "wp_postmeta", но не и в персонализираните данни, които исках да запазя. Ето моят код:

function wp_add_custom_meta_boxes(){
add_meta_box("custom_meta", "Settings", "wp_meta_box_callback", "images", "normal");
}
add_action("add_meta_boxes", "wp_add_custom_meta_boxes");

function wp_meta_box_callback($post){
wp_nonce_field(basename(__FILE__), "wp_custom_image_nonce");
?>

<div class="meta-row">
<div class="meta-th">
<p>Should this image show on the main page ?</p>
</div>
<div class="meta-td">
<label for="yes">Yes</label>
<input id="yes" type="radio" name="on_mainpage" value="true">
<label for="no">No</label>
<input id="no" type="radio" name="on_mainpage" value="false">
</div>
</div>

<?php
}

function wp_save_meta_info($post_id){
if(!wp_verify_nonce("wp_custom_image_nonce", basename(__FILE__))){
return;
}
if(defined("DOING_AUTOSAVE") && DOING_AUTOSAVE){
return $post_id;
}
if(isset($_POST["on_mainpage"])){
update_post_meta($post_id, "show_on_mainpage", $_POST["on_mainpage"]);
}
}

add_action("save_post", "wp_save_meta_info");

Имам още 1 въпрос. Изисква ли update_post_meta () някои актуални данни в базата данни да бъдат актуализирани или автоматично записва данните в базата данни, ако не съществува?

Благодаря предварително :)

Отговори:

0 за отговор № 1

Имате печатна грешка във вашата актуализация след мета функция

function wp_save_meta_info($post_id){
if(!wp_verify_nonce($_POST["wp_custom_image_nonce"], basename(__FILE__))){
return;
}
if(defined("DOING_AUTOSAVE") && DOING_AUTOSAVE){
return $post_id;
}
if(isset($_POST["on_mainpage"])){
update_post_meta($post_id, "show_on_mainpage", $_POST["on_mainpage"]);
}
}

Също така само за да отбележа, има персонализирана кука save_post за персонализирани типове публикации

куката се нарича - save_post_yourpostypename така

add_action("save_post_posttype", "wp_save_meta_info");

В противен случай ще трябва да проверите правилното мутип публикация в рамките на функцията или имат уникални имена без знаци във вашите персонализирани типове публикации. Също така бих препоръчал да използвате различно действие за вашите представи, нещо описателно и уникално би било по-добре, ако отстранявате грешката известно време в бъдеще

update_post_meta() ще създаде мета запис за името на вашето поле, аконе съществува, така че разработчиците предпочитат да го add_post_meta (), когато трябва да има само 1 мета запис за това име на полето, т.е. данните трябва да се актуализират след запис, а не създаден нов мета запис. Можете да видите своите записи от postmeta на таблицата на postmeta db.