Tôi có hai trường meta tùy chỉnh mà tôi đã bật cho mỗi bài đăng, scottb_customHeader và scottb_customTitle
Chúng hoạt động tốt miễn là tôi đang sử dụng tính năng chỉnh sửa đầy đủ để chỉnh sửa bài đăng. Tuy nhiên, khi tôi nhấp vào "Chỉnh sửa nhanh", sau đó nhấp vào "Cập nhật", các giá trị meta tùy chỉnh của tôi cho bài đăng sẽ bị xóa. Tôi cần làm gì để giải quyết?
Mã bên dưới ...
add_action('save_post', 'custom_add_save');
function custom_add_save($postID){
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return $postID;
}
else
{
// called after a post or page is saved
if($parent_id = wp_is_post_revision($postID))
{
$postID = $parent_id;
}
if ($_POST['scottb_customHeader'])
{
update_custom_meta($postID, $_POST['scottb_customHeader'], '_scottb_customHeader');
}
else
{
update_custom_meta($postID, '', '_scottb_customHeader');
}
if ($_POST['scottb_customTitle'])
{
update_custom_meta($postID, $_POST['scottb_customTitle'], '_scottb_customTitle');
}
else
{
update_custom_meta($postID, '', '_scottb_customTitle');
}
}
}
function update_custom_meta($postID, $newvalue, $field_name) {
// To create new meta
if(!get_post_meta($postID, $field_name)){
add_post_meta($postID, $field_name, $newvalue);
}else{
// or to update existing meta
update_post_meta($postID, $field_name, $newvalue);
}
}
DOING_AJAX
có được xác định và đúng không - nếu có, trả lại ID bài đăng như DOING_AUTOSAVE
hiện tại.
$_POST['scottb_customHeader']
sẽ luôn trống và bạn vô tình xóa chúng.custom_add_save
Có lẽ bạn không nên bắn khi bạn chỉnh sửa nhanh?