Intereting Posts
Переписать правила игнорируются как удалить прописку с левой и правой стороны? Как я могу контролировать Facebook как изображение? Показывать сообщения в формате «изображение», если смотреть на странице категории, но с комментариями в блоге Инструментарий социального обмена не отображается при загрузке ajax Как заблокировать определенные сообщения (cpt) от редактирования кем угодно, кроме ADMINS Facebook как статус обновления для wordpress Как фильтровать термины из пользовательской таксономии по значению usermeta на всех экранах и шаблонах добавить класс при входе в систему Скрытие Краткое описание на странице магазина, WooCommerce Как хранить медиафайлы в субдомене Как удалить_query_arg () для paginate_links () Веб-сайт полностью запутывается при выходе из системы Получать уведомление по электронной почте, когда на сайте wordpress возникает фатальная ошибка? Theme Customizer – Моя панель исчезает

wp_insert_term добавляет термин, который не имеет имени

Я пытаюсь вставить термин для пользовательской таксономии и пользовательский тип сообщения в WordPress. Проблема, с которой я столкнулась, заключается в том, что она успешно вставляет термин и на нужный уровень иерархии, но термин не имеет имени. Строка, которая вставляет этот термин:

$lasttermarray = wp_insert_term($categoryname, "department", array( "parent" => $parentcategory ) ); 

Я проверил, чтобы обе $ categoryname и $ parentcategory были установлены в правильные значения. Как я уже сказал, этот термин вставляется, просто с пустым именем. Пул пустого термина устанавливается на идентификатор нового термина.

Есть ли причина, по которой функция не будет считывать переменную имени и заставлять ее делать это? Спасибо за вашу помощь.

Как отмечено в комментариях OP, некоторые символы, отличные от ASCII, могут не поддерживаться в именах терминов при определенных условиях. Чтобы заменить всех подозрительных символов на символ подчеркивания , используйте следующий код:

 $categoryname = preg_replace('/[^a-z0-9]/i', '_', strtolower($categoryname)); wp_insert_term($categoryname, "department"); 

Чтобы заменить всех подозрительных символов тире , используйте следующий код:

 $categoryname = preg_replace('/[^a-z0-9]/i', '-', strtolower($categoryname)); wp_insert_term($categoryname, "department"); 

Чтобы просто удалить все подозрительные символы , используйте следующий код:

 $categoryname = preg_replace('/[^a-z0-9]/i', '', strtolower($categoryname)); wp_insert_term($categoryname, "department");