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

时间:2016-12-20 15:40:29

标签: php mysql wordpress caching categories

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

1 个答案:

答案 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');
相关问题