Я знал, что нельзя иметь одинаковые термины (термины слагы) в категориях и тегах, но удивительно, как я понял сегодня, это относится и к пользовательским таксономиям.
Так, например, если у моего сайта есть категория с именем, Linux (linux)
и я хочу также создать пользовательский термин таксономии, называемый «Linux», он будет выглядеть примерно так Linux (linux-2)
: слизни должны быть разными.
И если я пытаюсь переименовать слаг обратно linux
, я получаю ошибку: «Слаг« linux »уже используется другим термином» .
Можно ли иметь одинаковые термины в категориях / тегах и пользовательских таксономиях (без ущерба для жизни)?
Как повторить проблему?
Создайте 3-5 новых сообщений. Создайте новую категорию и тег и назначьте их этим сообщениям (только для целей тестирования).
Сохраните настройки постоянной ссылки.
создайте два новых условия в пользовательской таксономии с тем же именем и слагом, что и у категории и тега, которые вы создали ранее, и назначьте их новому сообщению с пользовательским типом сообщения.
Удалить пользовательские таксономии.
Попробуйте воссоздать их, и теперь вы получите ошибку: «Слаг« XXX »уже используется другим термином».
Иногда это повторяет проблему, иногда нет.
Но...
Если вы можете создать категорию (или тег) и пользовательскую таксономию с тем же именем и слагом, сделайте это. Затем переименуйте один из них, и вы заметите, что и категория (или тег), и пользовательская таксономия переименованы!
Ответы:
Оказывается, это ошибка в ядре. Я собирался сообщить об этом, но узнал, что он был там, как и многие годы, и относится также к таможенным таксономиям. Смотрите билеты: # 5809 , # 21950 и # 22023 .
Если все идет по плану, это должно быть исправлено в
3,83,94,14.2. ОБНОВЛЕНИЕ: Да, исправлено !Между тем, вот план для решения этой проблемы - автоматически установить пользовательский суффикс слаг для всех вновь создаваемых терминов в рамках таксономии:
Это не ретроспективно, то есть слагаемые только новых терминов в рамках таксономии (в нашем случае это «книги») создаются с нашим пользовательским суффиксом («-books»).
Чтобы вместо этого установить префикс, измените эту строку в функции:
что-то вроде этого:
И как только ошибка исправлена ...
Создайте дамп базы данных и выполните поиск и замену регулярных выражений с помощью подходящего текстового редактора, такого как Sublime Text или TextMate (или как этот ).
Вероятно, не лучший способ сделать это, но достаточно хороший, чтобы выполнить работу.
источник