从XML提要向WordPress添加类别分配
我正在为我的实习工作构建一个定制插件,加载几个XML产品提要。这些提要都分配了类别,每个提要的名称都略有不同,因此我开始在管理员UI的帮助下对它们进行规范化,管理员可以在UI中为类别填写新名称 这就是合并所有提要、删除重复项并更改名称后categories数组的外观。当然,在实际应用程序中,此阵列要长得多从XML提要向WordPress添加类别分配,xml,wordpress,add,feed,categories,Xml,Wordpress,Add,Feed,Categories,我正在为我的实习工作构建一个定制插件,加载几个XML产品提要。这些提要都分配了类别,每个提要的名称都略有不同,因此我开始在管理员UI的帮助下对它们进行规范化,管理员可以在UI中为类别填写新名称 这就是合并所有提要、删除重复项并更改名称后categories数组的外观。当然,在实际应用程序中,此阵列要长得多 Array ( [targetaudience] => Array ( [Baby boys] => [B
Array
(
[targetaudience] => Array
(
[Baby boys] =>
[Baby girls] =>
[Boys] => Boys
[Boy] => Boys
[Girls] => Girls
[Girl] => Girls
[Unisex] =>
)
[productgroup] => Array
(
[Pants short] => Pants
[Pants long] => Pants
[Trousers] => Pants
[T-shirt] => T-shirts
[Shirt] => T-shirts
[Shirts] => T-shirts
[T-shirt long-sleeve] => T-shirts
)
);
这是将数组中的类别添加到WordPress的代码
foreach($parent_categories as $parent_name => $child_categories) {
//Create parent category
$parent_id = wp_create_category($parent_name);
//If parent-category was created successfully
if($parent_id!=0) {
foreach($child_categories as $old_cat_name => $new_cat_name) {
if($new_cat_name=='') {
//Use old name
wp_create_category($old_cat_name, $parent_id);
} else {
//Use new name
wp_create_category($new_cat_name, $parent_id);
}
}
}
}
它所做的是检查$parent_categories数组中的类别名称,如果有新名称,它将使用该数组值,否则它将只使用旧名称数组键。
我希望我把我的意图说清楚。
问题是,当我执行代码时,它只添加父类别,即“targetaudience”和“productgroup”,当我通过WordPress类别页面删除这些父类别时,它会立即删除它们并添加所有其他类别。那不可能是正常的行为
非常感谢您的帮助
编辑:我检查了数据库,脚本执行后,所有类别都添加到数据库中。但当我查看WP类别页面时,它会显示父类别和空页面的分配,它会显示“266个项目”和“14个页面”,但这些页面是空的。仅当我删除或编辑任何一个类别时,其余类别才会显示。有时,最后一个父类别甚至没有被添加,尽管当我从循环中回显它时,它就在那里,所以添加类别时一定出了问题。经过一周的努力,我终于找到了一个解决方案,对于那些有同样问题的人来说,问题在于类别缓存,添加类别后不会更新。下面的代码片段修复了这个问题:删除选项“category_children”;