Я знаю, что это очень устаревший пост, но я помещаю его здесь, чтобы его могли открыть другие, так как в сети много потоков без решения.У меня была та же проблема, и я глубоко погрузился в происходящее.На самом деле проблема в ядре WordPress, и я отправил заявку на него здесь https://core.trac.wordpress.org/ticket/33148. Я бы порекомендовал добавить в него подробности, которые я мог пропустить здесь.
Определение проблемы:
Категории не отображаются в панели администратора, однако это означает, что существует 6 категорий.Они также видны в базе данных.
Происходит то, что WordPress ищет категории, у которых нет родительского идентификатора ИЛИ связаны с родителем, который существует .Если для родительского идентификатора задан несуществующий идентификатор (кроме 0, что означает отсутствие родителя), категории не будут отображаться в списке.Я приложу несколько скриншотов, чтобы показать, что я имею в виду на уровне базы данных до и после.
Выполнение запроса:
//I am on a multisite instance so this is an example of the query using table numbers.
//If you are on a standard install then wp_terms and wp_term_taxonomy is what you would use.
SELECT * FROM wp_2_terms terms JOIN wp_2_term_taxonomy tax ON terms.term_id=tax.term_id
WHERE tax.taxonomy='category';
Как видите, родитель - это энергия, но по какой-то причине идентификаторне является правильным.Поэтому дети не связаны правильно.Я могу только предположить, что один из наших пользователей удалил родительский элемент, а затем вручную добавил его, но забыл связать дочерние элементы.
Так как я случайно обрезал имена столбцов таблицы, они чуть выше.
После повторного связывания категории вы должны увидеть это в базе данных
Действия по исправлению категории:
- Вы можете использовать функцию поиска чуть выше списка категорий для поиска категорииесли вы знаете его имя.Отредактируйте категорию и либо повторно выберите «Нет родителя», ИЛИ выберите родителя, с которым она должна быть связана, и нажмите «Сохранить».Теперь категория должна отображаться обратно в списке категорий, поскольку для родительского идентификатора установлено правильное значение, которое существует.
- Другой вариант - обновить идентификатор в базе данных до 0 для родительского или родительского идентификатора.если категория дочерняя.
Я выбрал вариант 1, так как могут быть перехваты при сохранении в плагинах или в вашем собственном пользовательском коде.Я думаю, что вероятность побочных эффектов меньше.
Теперь категория снова здесь: