将 Wordpress 类别添加到数据库,更改仅在通过界面更新后显示

Adding Wordpress categories to database, changes only show after update via interface

我正在将 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 不支持创建多语言类别。

我遇到的问题是因为我试图递归地添加类别,然后 运行 对它们进行分类。我必须使用一个 t运行slation 向数据库中添加一个类别,然后再添加其他 t运行slation。但是每当我 运行 清除缓存的功能时,WPML 也开始工作。这搞砸了整个 t运行slation。

我最终自己创建了一个类别,并在 运行 我的所有代码之后立即将其删除。这似乎奏效了。

分享这个伤害了我程序员的心,但这就是我解决问题的方法。所以这里是:

$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');