所以我有多个帖子。两大类。作者发表的某些帖子仅属于一个类别。但其他作者的帖子可能属于这两个类别。我需要删除重复项。我一次只能有一个作者帖子。所以我只是要默认到两者中更重要的(商店帖子而不是服务帖子)类别并列出该帖子。
但我不知道如何去做。
以下是我获取数据并处理它以输出的方式:
$allPosts = get_post_type_data('archive', 'all');
for($i = 0; $i < count($allPosts); $i++){
if($allPosts[$i]['post_type'] == 'antique-shops'){
$shopData[] = $allPosts[$i];
}
if($allPosts[$i]['post_type'] == 'member-dealers'){
$memberData[] = $allPosts[$i];
}
if($allPosts[$i]['post_type'] == 'services'){
$serviceData[] = $allPosts[$i];
}
}
$business = array_merge((array)$shopData, (array)$serviceData);
function cmp($a, $b){
return strcmp(rewrite_name($a['custom']['wpcf-business-contact'][0]), rewrite_name($b['custom']['wpcf-business-contact'][0]));
}
usort($business, "cmp");
for($i = 0; $i < count($business); $i++){
if($i % 2){
$className = 'odd';
} else{
$className = 'even';
}
$check = check_member($business[$i]['custom']['wpcf-business-contact'][0], $memberData);
if($check[0] == 'true'){
echo display_listing('member-dealers', $check[1], $business[$i], $className);
}
}
因此,在获取所有数据后,我将 Antique Shops 和 Services 合并到一个数组中,并让成员拥有自己的数据数组。
然后对于每个业务数据项,我检查业务联系人以查看它是否与成员数据匹配。
$check
返回数组值。$check[0]
= true/false $check[1]
= 与特定成员有关的数据数组。
display_listing()
只需获取每个企业/成员输入的数据并将其输出。
我想我需要在根据成员数据检查业务或服务之前检查重复项。
每个古董店或服务都有一个业务联系人:$business[$i]['custom']['wpcf-business-contact'][0]
用于检查该业务联系人是否作为会员存在。
因此,如果$business[$i]['custom']['wpcf-business-contact'][0]
同时属于古董店和服务,则从数组中删除与该人有关的服务数据。
我试过这个(在循环内):
if(($key = array_search($business[$i]['custom']['wpcf-business-contact'][0], $business)) !== false){
unset($business[$key]);
}
在这种情况下删除重复项有什么有用的指导吗?