Моя функция, приведенная ниже, будет принимать значения из моих пользовательских мета-полей (после того, как сообщение было отредактировано и нажата кнопка сохранения или публикации) и обновлять или вставлять опубликованные мета-значения.
Однако, если пользователь оставляет это поле пустым, я думаю, что я хочу полностью удалить мету (поэтому я могу проверить его наличие и отобразить соответственно вместо проверки "").
Например, одна из моих мета-опций дает пользователю возможность добавить пользовательский заголовок к своему сообщению, который, при его наличии, будет заполнять тег страницы. Однако, если поле оставлено пустым, я хочу установить тег по умолчанию в the_title (), который является просто заголовком сообщения, используемым для идентификации страницы / сообщения.
Поскольку я не удаляю мету при сохранении, она всегда присутствует после того, как пользователь вводит что-то туда, get_post_meta ($ post-> ID, 'MyCustomTitle', true) всегда имеет значение true. Кроме того, они не могут очистить его, очистив поле заголовка и нажав «Опубликовать».
Чего мне не хватает в сохранении, чтобы очистить значение до "", когда пользователь очищает поле?
if ($_POST['MyCustomTitle']) {
update_custom_meta($postID, $_POST['MyCustomTitle'], 'MyCustomTitle');
}
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);
}
}