Могу ли я безопасно удалить запись вручную в таблице wp postmeta?
У меня ошибка в метаданных для публикации. Это мешает мне исправлять или добавлять новое значение из самого сообщения.
Если я зайду в таблицу postmeta базы данных и перейду к записи для этого идентификатора записи, я увижу ошибку.
Могу ли я безопасно просто удалить всю эту запись в таблице postmeta? Нет никакой другой меты поста, о которой стоило бы беспокоиться.
В качестве альтернативы я вижу функцию WordPress delete_post_meta()
. Однако я не уверен, как правильно использовать это в functions.php
и крючком.
Я мог бы просто удалить и повторно ввести весь пост с панели мониторинга, но я думаю, что запись в таблице postmeta для старого поста все еще будет там, осиротевшая - верно?)
1 answers
Неясно, что на самом деле делает postmeta, чтобы она могла повлиять на ваш сайт любым количеством способов.
В лучшем случае он просто очистит поле/параметр, и пользователю нужно будет повторно ввести его для этой конкретной страницы.
В худшем случае это может изменить макет страниц или привести к потере медиафайла в вашей медиатеке (при условии, что поле содержит идентификатор вложения). Кроме этого, я не вижу причины, по которой удаление строки в таблице postmeta было бы чрезвычайно вредно.
Всякий раз, когда сообщение удаляется, WordPress удаляет все постметы, назначенные этому идентификатору сообщения. Тот wp_delete_post()
функция говорит...
Когда сообщение и страница [удаляются], все, что с ними связано, также удаляется. Это включает комментарии, мета-поля публикации и связи между терминами публикации и таксономии.
В delete_post_meta()
функция может быть запущена практически в любом месте, где было загружено ядро. Вы могли бы поместить его внутрь init
или save_post
зацепите и запустите его один раз, а затем удалите вызов функции. Например:
function delete_somemeta() {
// This will run every single time a page is loaded.
delete_post_meta( $POST_ID, 'META_KEY_NAME' );
}
Вы можете добавить это в свой functions.php
, перезагрузить интерфейс вашего веб-сайта, затем удалить его, и это будет эффективно делать то же самое, что и удаление строки из базы данных.
Этот тип функции чаще всего рассматривается как условное удаление постметы в save_post
зацепитесь, хотя при сохранении данных метабокса.