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

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

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

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

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

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

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

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

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

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

Это интересно:  Добавляем файловый менеджер в консоль управления блогом

Примечание: Запросы, связанные с таксономией, новичкам типа меня иногда сложно составлять, поэтому сначала а) просто удалим ненужные строки из таблицы «вручную», а потом посмотрим, как это сделать б) с помощью 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

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

Это интересно:  Если заголовок в сайдбаре смещается к картинке (исправление плагина Advanced Most Recent Posts Mod)

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

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

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

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

DELETE FROM wp_term_relationships WHERE term_taxonomy_id = '1'

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

Что происходит во время этого SQL-запроса? Команда удаляет (delete) связи статей из таблицы term_relationships, открепляет элементы от рубрики, указанной в таблице term_taxonomy_id под номером 1.

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

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

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

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

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

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

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

Удачи!

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

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

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

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

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

16 − десять =