Ошибка Invalid taxonomy при использовании wp_insert_term

Ковыряю один интернет магазин на вордпрессе, на woocommerce. Так вот так, чтобы не перемешивались посты и товары, товарам поставили свою таксономию, отличную от простых постов. Категориям товаров соответственно тоже, чтобы не путались. И вот при импорте большого списка товаров и категорий в магазин, вываливается такая красота:

object(WP_Error)#273 (2) {
  ["errors"]=>
  array(1) {
    ["invalid_taxonomy"]=>
    array(1) {
      [0]=>
      string(16) "Invalid taxonomy"
    }
  }
  ["error_data"]=>
  array(0) {
  }
}

Смотрел сам код, там видимо когда постишь из админки, категории записываются в глобальные и дальше читаются из памяти (странное решение sic:) ). А когда просто инклюдишь нужные скрипты и используешь вызов wp_insert_term или wp_set_post_terms то вываливается ошибка. Как красиво решить не нашел, нашел как некрасиво.

global $wp_taxonomies;
$wp_taxonomies .= array('You_category');

И все сработало

4.00 avg. rating (80% score) - 4 votes

One Comment

  • Тоже столкнулся в php с проблемой видимости переменных. Только в моем случае дела обстояли таким образом:

    $dbObject = new db();

    function hello(){
    // global $dbObject; - без этого кода не работает
    $dbObject->selectData();
    }

    То есть глобальные объекты, а особенно если они инклудятся — могут попросут быть невидимыми в теле функции.

css.php