баг get_term_by
-
Почему get_term_by()
если вызывать по имени и в имени термина есть круглые скобки, функция возвращает false, как с этим бороться?
-
баг это возможность использовать кавычки в названии термина, видимо.
имя то хоть в кавычках вставляете?
get_term_by(‘name()’)имя вставляю как элемент массива
$args[] = array(«cat»=>»Volvo»,»cat_2″=>»Volvo C70 (+2006)»,»title»=>»Volvo C70 T5 220″);почитайте документацию к функции https://codex.wordpress.org/Function_Reference/get_term_by
то, что вы пишите — кажется мне бессмысленным.
какие cat, vat_2, title?
таких вещей в этой функции вообще нет.The fields returned are: term_id (See warning below) name slug term_group term_taxonomy_id taxonomy description parent countТак понятно?
$args = arrray() /** * Другие элементы массива * бла бла бла */ //Элементы для примера // где 'cat_2' - имя термина $args[] = array("cat"=>"Volvo","cat_2"=>"Volvo C30","title"=>"Volvo C30 2.4 D5 180","power_fuel"=>"дизель","power_before"=>"180","power_after"=>"210","power_torque_before"=>"350","power_torque_after"=>"415","power_prise"=>"18 000"); $args[] = array("cat"=>"Volvo","cat_2"=>"Volvo C70 (+2006)","title"=>"Volvo C70 T5 220","power_fuel"=>"бензин","power_before"=>"220","power_after"=>"260","power_torque_before"=>"320","power_torque_after"=>"380","power_prise"=>"18 000"); foreach ( $args as $key ) { $term = get_term_by('name',$key['cat_2'],'power_tax'); var_dump($term); } // в случае "cat_2"=>"Volvo C30" возвращает нужный термин // в случае "cat_2"=>"Volvo C70 (+2006)" не возвращает нужный термин, то же самое для всех терминов имеющих круглые скобкиАналогичная ситуация возникает у функции wp_insert_term если имя термина содержит круглую скобку она режет имя термина при вставке, хотя слаг задает верный, там проблему можно порешать заменив символы круглой скобки на сущности, в случае с get_term_by такой трюк не прокатывает
del
Расскажите как обращаться по слагу, буду обращаться по слагу.
Прежде чем ответить, посмотрите какие слаги будут формироваться для таких имен
Volvo C70 (+2006)
Volvo C70 (-2006)del
ещще раз
это элемент массива
args[] = array("cat"=>"Volvo","cat_2"=>"Volvo C70 (-2006)","title"=>"Volvo C30 2.4 D5 180","power_fuel"=>"дизель","power_before"=>"180","power_after"=>"210","power_torque_before"=>"350","power_torque_after"=>"415","power_prise"=>"18 000");где cat_2 — термин к которому надо обратиться
вопрос как нему обратиться через предлагаемый вами слаг заданный вручную.
Кроме того, слаги и прочее надо задавать автоматически, руками лазить — это плохой тон. Особенно когда терминов 25 000 как в моем случае
del
к чему вы развиваете эту демагогию, не знаете ответа на вопрос, не отвечайте.
Термины уже загружены их количество 25к в каждом от 5 до 100 записей, соответственно интересует ровно то о чем я спросил. Сделано так как сделано, сделано так потому, что надо именно так.
Тема «баг get_term_by» закрыта для новых ответов.