Могу ли я безопасно удалить запись вручную в таблице wp postmeta?


У меня ошибка в метаданных для публикации. Это мешает мне исправлять или добавлять новое значение из самого сообщения.

Если я зайду в таблицу postmeta базы данных и перейду к записи для этого идентификатора записи, я увижу ошибку.

Могу ли я безопасно просто удалить всю эту запись в таблице postmeta? Нет никакой другой меты поста, о которой стоило бы беспокоиться.

В качестве альтернативы я вижу функцию WordPress delete_post_meta(). Однако я не уверен, как правильно использовать это в functions.php и крючком.

Я мог бы просто удалить и повторно ввести весь пост с панели мониторинга, но я думаю, что запись в таблице postmeta для старого поста все еще будет там, осиротевшая - верно?)

 1
Author: Howdy_McGee, 2016-09-07

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 зацепитесь, хотя при сохранении данных метабокса.

 2
Author: Howdy_McGee, 2016-09-07 16:58:18