• Почему get_term_by()
    если вызывать по имени и в имени термина есть круглые скобки, функция возвращает false, как с этим бороться?

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • баг это возможность использовать кавычки в названии термина, видимо.

    имя то хоть в кавычках вставляете?
    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 записей, соответственно интересует ровно то о чем я спросил. Сделано так как сделано, сделано так потому, что надо именно так.

Просмотр 10 ответов — с 1 по 10 (всего 10)

Тема «баг get_term_by» закрыта для новых ответов.