Как быстро удалить «Без рубрики» в записях WordPress

Вообще, речь пойдет не об удалении рубрики «Без рубрики», а отключения этой рубрики для статей. Дело было так: с помощью экспорта-импорта записей и всего остального в WordPress перенесён контент на другой сайт, и оказалось, что все статьи, кроме своей указанной рубрики, были добавлены еще в рубрику нового сайта «Без рубрики». Мне это совсем не нужно.

Можно редактировать записи по одной, удаляя ненужную рубрику, можно использовать плагины (например, отличный плагин Simple Tags), можно редактировать записи группами. Но в первом и последнем случае в новых версиях WordPress что-то глючит и надо редактировать дважды, чтобы избавиться от «Без рубрики», а с плагинами всё происходит быстрее, чем редактирование каждой записи, но недостаточно быстро.

Как быстро удалить записи из рубрики «Без рубрики»?

Обычно быстрее всего управление контентом WordPress происходит через SQL-запросы к базе данных (БД) или же с помощью каких-то прямых манипуляций с таблицами БД в панели MySQL на хостинге. Что я и сделаю.

На картинке 1 показано, что для каждой записи указаны и нужные рубрики-категории, и ненужная автоматически добавленная рубрика «Разное» (это у меня уже переименованная «Без рубрики», что смысла не меняет).

Как быстро удалить «Без рубрики» в записях WordPress

Картинка 1: рубрика «Разное» («Без рубрики») добавилась ко всем перенесенным записям

Поэтому идет в MySQL и – важно! – на всякий случай сохраняем БД, чтобы потом не было мучительно больно, если что-то пойдет не так. Хотя нормальные хостеры, конечно, сохраняют бекапы, из которых всегда можно восстановиться (откатиться) для предыдущего состояния базы данных и сайта, вообще.

В базе данных сайта ищем таблицу term_relationships (она занимается тем, что указывает связи между элементами сайта, постами, страницами, рубриками, метками и т.д.).

Это интересно:  Транслитерация при автонаполнении сайтов WordPress (плагины)

Примечание: Запросы, связанные с таксономией, новичкам иногда сложно составлять, поэтому сначала просто удалим ненужные строки из таблицы «вручную», а потом посмотрим, как это сделать с помощью SQL-запроса к базе данных.

Удаление строк из таблицы базы данных

Рубрика «Без рубрики» (или у меня – «Разное») обычно имеет ID = 1, но вы можете проверить это, посмотрев в таблице terms – рис. 2.

Как быстро удалить «Без рубрики» в записях WordPress

Рис. 2: Таблица wp_terms с идентификатором и именем категорий и других элементов сайта на WordPress

В таблице wp_term_relationships отсортируем колонку term_taxonomy_id отсортируем элементы по возрастанию (нажмите на заголовок колонки), чтобы вначале оказались элементы, которые относятся к ID = 1, т.е. которые относятся к рубрике «Без рубрики» (у меня, напоминаю, это – «Разное»).

В колонке object_id (см. рис. 3) будут указаны идентификаторы элементов – статей и т.п., которые отнесены (связаны) с элементом в следующей колонке.

Как быстро удалить «Без рубрики» в записях WordPress

Рис. 3: Отсортированные элементы с ID = 1

Теперь просто удаляем все строки, в которых term_taxonomy_id равно единице. Это не удалить сами статьи, а только их связь с соответствующей рубрикой, ID которой равен единице. При этом статьи, для которых была указана ТОЛЬКО рубрика «Без рубрики» («Разное»), не будут отнесены ни к одной категории!

Чтобы удалить группу строк, выделите их и внизу выберите действие (рис. 4).

Как быстро удалить «Без рубрики» в записях WordPress

Рис. 4: «Отметить все» и «Удалить» в таблице MySQL

Будьте внимательны, чтобы не удалить личные строки, которые не связаны с «первой категорией».

А теперь, как и обещалось, посмотрим второй вариант удаления ненужных связей таксономии WordPress.

Удаление строк из таблицы базы данных c помощью SQL-запроса

У меня было всего 92 записи, поэтому и «вручную» несложно было удалить строки. Но если записей много, то проще, конечно, удалить строки из таблицы с помощью запроса, который проверяет определенное условие (у нас – что ID равно единице).

Это интересно:  Поменять все ссылки на ЧПУ в WordPress (с транслитерацией)

Запрос будет примерно таким:

DELETE FROM wp_term_relationships WHERE term_taxonomy_id = '1'

«Примерно», потому что у меня, например, стандартный префикс wp_ изменен на другой.

Этот способ, конечно, более практичный и намного быстрее.

Теперь смотрим статьи на сайте (рис. 5): те же самые статьи, которые были на верхнем скриншоте, теперь избавились от ненужной рубрики.

Как быстро удалить «Без рубрики» в записях WordPress

Рис. 5: статьи без категории «Разное» (стандартная — «Без рубрики»).

Кстати, на странице «Рубрики» админ-панели WordPress напротив «Разное» у меня так и осталось число статей 92. Но если нажать на них, то видно, что в категории ничего нет:

Как быстро удалить «Без рубрики» в записях WordPress

Вот и всё, что надо было сделать. Теперь для перенесенных с другого сайта WordPress статей не указана ненужная рубрика по умолчанию «Без рубрики».

Удачи!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Самое интересное в блоге

One thought on “Как быстро удалить «Без рубрики» в записях WordPress

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

три × четыре =