Ich habe zwei benutzerdefinierte Metafelder, die ich für jeden Beitrag aktiviert habe, scottb_customHeader und scottb_customTitle
Diese funktionieren einwandfrei, solange ich die vollständige Bearbeitungsfunktion zum Bearbeiten von Posts verwende. Wenn ich jedoch auf "Schnellbearbeitung" und dann auf "Aktualisieren" klicke, werden meine benutzerdefinierten Metawerte für den Beitrag gelöscht. Was muss ich tun, um das Problem zu beheben?
Code ist unten ...
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_AJAXdefiniert und wahr ist. Wenn dies der Fall ist, geben Sie die Post-ID wie DOING_AUTOSAVEderzeit zurück.
$_POST['scottb_customHeader']ist immer leer und Sie löschen sie versehentlich. Siecustom_add_savesollten wahrscheinlich nicht feuern, wenn Sie eine schnelle Bearbeitung durchführen?