Intereting Posts
переопределить стиль css wp_get_attachment_image () не отображает сообщения, даже если wp_get_attachment_url () echo correct urls Сравните пользовательские таксономии обновленного сообщения (или нового сообщения) Не удается сохранить с помощью register_setting Добавление ограничений для открытых комментариев Переписывание URL с 3 настраиваемыми мета-полями для добавления на страницы Найти правильный «текстовый домен» в теме Как отображать только последнюю запись на моей домашней странице, сохраняя при этом правильные плагины? Добавить дополнительное меню в тему Показать Недавно добавленные пользовательские типы сообщений с пользовательским таксономии Shortcode Отображение списка контактов Показывать публикацию авторов на одной странице только при входе в систему Загрузите всю галерею NextGEN из одного миниатюры? Мобильные пользователи перенаправлены на другую страницу при входе в систему, если не связаны с другим сообщением Удалить виджет таксономии из сообщения «СТРАНИЦА»

Как я могу безопасно удалить данные, связанные с таблицей wp_post, вручную из базы данных mysql?

Недавно я загрузил плагин, в котором была ошибка, которая потеряла свои персонализированные элементы типа post в таблице wp_post, а не удаляла их. Являясь новичком в WordPress, мне не показалось, что таблица wp_postmeta связана с этой таблицей. Теперь у меня есть записи в последнем с NULL значения для $ post_id. (Я просто удалил все в wp_post с этим типом контента.)

Я предполагаю, что было бы легко сделать левый запрос соединения, чтобы найти все эти элементы wp_postmeta и удалить все с помощью $ post_id NULL. Но я не совсем уверен, как таблицы wordpress относятся друг к другу. Если бы я сделал это вручную, есть ли какие-либо другие таблицы по умолчанию, которые необходимо учитывать? Кто-нибудь имеет скрипт в своей библиотеке для обработки чего-то подобного?

Если вы можете предложить плагин, я также открыт для этого.

Solutions Collecting From Web of "Как я могу безопасно удалить данные, связанные с таблицей wp_post, вручную из базы данных mysql?"

Поскольку вы уже удалили все сообщения в таблице, это будет немного работать вручную.

В следующий раз, когда вы сделаете что-то подобное, используйте wp_delete_post( $postid, $force_delete ); ( Codex ) при циклическом перемещении всех сообщений с этим посттипом, поскольку эта функция удаляет все данные, связанные с этим сообщением.

 $args = array( 'posttype' => 'yourposttype', 'numberposts' => -1 ); $todelete = get_posts( $args ); foreach( $todelete as $deletethis ) { wp_delete_post( $deletethis->ID, true ); } 

В вашем случае вам нужно будет проверить следующие таблицы данных (я пропустил здесь tableprefix):

  • сообщений (которые вы уже сделали)
  • PostMeta
  • комментарии / commentmeta
  • term_relationships

Во всех случаях вам придется искать записи с post_id / object_id NULL или без записи в таблице сообщений и удалять их. SQL должен быть довольно простым.