Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将Wordpress类别添加到数据库中,更改仅在通过界面更新后显示_Php_Mysql_Wordpress_Caching_Categories - Fatal编程技术网

Php 将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 ); 可在此处找到: 不幸的是,在我编辑并保存一个可见类别后,它仍然只显示我的更改 所以要明确的是:我在数据库中所做的事情是有效的。我将记

我正在将Wordpress类别注入我的MySQL数据库。对于没有父级的类别,这是很好的。但是当我添加子类别时,它不会显示在Wordpress类别列表中

我相信这与Wordpress缓存分类树的查询或结果有关。我尝试使用此函数强制Wordpress清理缓存:

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。