Ковыряю один интернет магазин на вордпрессе, на 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');
И все сработало
One Comment
Тоже столкнулся в php с проблемой видимости переменных. Только в моем случае дела обстояли таким образом:
$dbObject = new db();
function hello(){
// global $dbObject; - без этого кода не работает
$dbObject->selectData();
}
То есть глобальные объекты, а особенно если они инклудятся — могут попросут быть невидимыми в теле функции.