Php 将Wordpress类别添加到数据库中,更改仅在通过界面更新后显示
我正在将Wordpress类别注入我的MySQL数据库。对于没有父级的类别,这是很好的。但是当我添加子类别时,它不会显示在Wordpress类别列表中 我相信这与Wordpress缓存分类树的查询或结果有关。我尝试使用此函数强制Wordpress清理缓存:Php 将Wordpress类别添加到数据库中,更改仅在通过界面更新后显示,php,mysql,wordpress,caching,categories,Php,Mysql,Wordpress,Caching,Categories,我正在将Wordpress类别注入我的MySQL数据库。对于没有父级的类别,这是很好的。但是当我添加子类别时,它不会显示在Wordpress类别列表中 我相信这与Wordpress缓存分类树的查询或结果有关。我尝试使用此函数强制Wordpress清理缓存: clean_term_cache( $ids, $taxonomy, $clean_taxonomy ); 可在此处找到: 不幸的是,在我编辑并保存一个可见类别后,它仍然只显示我的更改 所以要明确的是:我在数据库中所做的事情是有效的。我将记
clean_term_cache( $ids, $taxonomy, $clean_taxonomy );
可在此处找到:
不幸的是,在我编辑并保存一个可见类别后,它仍然只显示我的更改
所以要明确的是:我在数据库中所做的事情是有效的。我将记录添加到正确的表中。唯一的问题是Wordpress管理界面没有显示更改。直到我使用上述界面编辑/保存在管理界面中可见的类别
另外:我使用直接数据库注入,因为我使用的是WooCommerce+WPML。API不支持创建多语言类别。我遇到的问题是因为我试图递归地添加类别并翻译它们。我必须用一个翻译向数据库中添加一个类别,然后再添加其他翻译。但是每当我运行清除缓存的函数时,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');
我遇到的问题是因为我试图递归地添加类别并翻译它们。我必须用一个翻译向数据库中添加一个类别,然后再添加其他翻译。但是每当我运行清除缓存的函数时,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');
clean\u term\u cache()
是用于此操作的函数。你能确认你使用的论点吗?具体来说,$clean_taxonomy
在创建子类别时应该几乎总是true
。现在我正在跟踪我创建的所有类别的ID。这就是我用作第一个参数的数组。分类法是“product_cat”,据我所知,默认情况下$clean_taxonomy为true。clean_term_cache()
是用于此的函数。你能确认你使用的论点吗?具体来说,$clean_taxonomy
在创建子类别时应该几乎总是true
。现在我正在跟踪我创建的所有类别的ID。这就是我用作第一个参数的数组。分类法是‘product_cat’,据我所知,默认情况下$clean_分类法为true。