Я создал пользовательский тип записей «Продукты», который также имеет пользовательские поля «Цена» и «Доставка». Иногда, если я оставляю окно редактирования продукта открытым или обновляю его, то теряются значения внутри цены и доставки. Может кто-нибудь что посоветует по этому поводу?
add_action('save_post', 'save_details');
function save_details()
{
global $post;
update_post_meta($post->ID, "price", $_POST["price"] );
update_post_meta($post->ID, "shipping", $_POST["shipping"] );
update_post_meta($post->ID, "long_title", $_POST["long_title"] );
update_post_meta($post->ID, "upload_image", $_POST["upload_image"] );
}
Проверьте переменные перед работой с ними. Ваша функция сохранения получает параметр
$post_id
. Используйте его.Из класса meta box для флажка:
Как вы можете видеть,
DOING_AUTOSAVE
— это то, чего вы хотите избежать. Авторизация — следующий шаг. В противном случае кто-нибудь может разместить что-нибудь в свой блог. И подготовьте данные, прежде чем вставлять их в БД.Спасибо!
Кроме того, веб-сайт, который я создаю, не является блогом. Это CMS, в которую только владелец сайта будет вносить изменения после входа в систему.
Это просто пример кода. Обычно я реализую два уровня абстракции. Но он должен показать вам, как это работает.