我将Wordpress类别注入我的MySQL数据库。对于没有父母的类别,这很好。但是当我添加一个子类别时,它并没有在Wordpress类别列表中显示。
我认为这与Wordpress缓存查询或类别树的结果有关。我试图使用此函数强制Wordpress清理缓存:
clean_term_cache( $ids, $taxonomy, $clean_taxonomy );
在此处找到:https://codex.wordpress.org/Function_Reference/clean_term_cache
不幸的是,在我编辑并保存其中一个可见类别之后,它仍然只显示我的更改。
所以要明确:我在数据库中所做的事情是有效的。我将记录添加到正确的表中。唯一的问题是Wordpress管理界面没有显示更改。直到我使用所述界面编辑/保存管理界面中可见的类别。
另外:我使用直接数据库注入,因为我使用的是WooCommerce + WPML。 API不支持创建多语言类别。
答案 0 :(得分:0)
我遇到的问题是由于我试图以递归方式添加类别并翻译它们。我必须使用一个翻译向数据库添加一个类别,然后添加其他翻译。但每当我运行清除缓存的函数时,WPML也会开始工作。这搞砸了整个翻译。
我最终自己创建了一个类别,并在运行完所有代码后立即将其删除。这似乎有效。
分享这个让我的程序员心脏受伤,但这就是我解决问题的方法。所以这里:
$temp_term = wp_insert_term('Fake category', 'product_cat', ['description' => 'Temporary category', 'slug' => 'fake-cat-temp']);
wp_delete_term($temp_term['term_id'], 'product_cat');