Отсутствуют категории WordPress - PullRequest
1 голос
/ 24 июня 2010

Обратите внимание, что это не тема или другая проблема.

Категории не отображаются в панели администратора, однако это означает, что существует 6 категорий.Они также видны в базе данных.

Недавно что-то случилось с хостингом, и любые функции php move_upload начали выдавать ошибки об отсутствующем пути tmp, поэтому я создал локальный файл php.ini, указывающий направо tmp папка (home/user/tmp) и это решило проблему.

Однако, похоже, что это связано.Я попытался установить их в wp-config

define('WP_TEMP_DIR', '/tmp');
define('DBCR_CACHE_DIR', '/tmp');

, но безрезультатно.

1 Ответ

2 голосов
/ 28 июля 2015

Я знаю, что это очень устаревший пост, но я помещаю его здесь, чтобы его могли открыть другие, так как в сети много потоков без решения.У меня была та же проблема, и я глубоко погрузился в происходящее.На самом деле проблема в ядре 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';

Как видите, родитель - это энергия, но по какой-то причине идентификаторне является правильным.Поэтому дети не связаны правильно.Я могу только предположить, что один из наших пользователей удалил родительский элемент, а затем вручную добавил его, но забыл связать дочерние элементы.

Так как я случайно обрезал имена столбцов таблицы, они чуть выше.

enter image description here enter image description here

После повторного связывания категории вы должны увидеть это в базе данных

enter image description here enter image description here

Действия по исправлению категории:

  1. Вы можете использовать функцию поиска чуть выше списка категорий для поиска категорииесли вы знаете его имя.Отредактируйте категорию и либо повторно выберите «Нет родителя», ИЛИ выберите родителя, с которым она должна быть связана, и нажмите «Сохранить».Теперь категория должна отображаться обратно в списке категорий, поскольку для родительского идентификатора установлено правильное значение, которое существует.
  2. Другой вариант - обновить идентификатор в базе данных до 0 для родительского или родительского идентификатора.если категория дочерняя.

Я выбрал вариант 1, так как могут быть перехваты при сохранении в плагинах или в вашем собственном пользовательском коде.Я думаю, что вероятность побочных эффектов меньше.

Теперь категория снова здесь:

enter image description here

...