查找分配到多个类别的WordPress帖子

时间:2018-02-09 作者:Joey

我有一个网站,大约有8000种产品,网站结构稍差-品牌名称和零售商不是自定义分类法,而是各种单个品牌的父类别,零售商是子类别。

品牌(Cat ID 187-约300个品牌作为子类别)

品牌1品牌2品牌3等零售商(Cat ID 186-约20家零售商作为子类别)

零售商1、零售商2、零售商3等我有一个单独品牌和零售商的子类别ID列表,对于站点维护,我想知道是否有办法显示意外分配给多个零售商或多个品牌的所有帖子?

我找到了定位分配给2个特定类别的所有帖子的解决方案,但没有任何一个可以显示出现在长数组中任何2个类别中的帖子。

或者,任何属于某个父ID的2个或多个子类别的帖子-如果这比一个长的子cat ID数组要简单?

它是否慢并不重要,因为只有我才能看到输出以维护网站。

如果有人能给我一些建议,我将非常感激——提前谢谢:)

乔伊

编辑:我能想到的唯一快速解决方案是,用逗号分隔的类别列表输出所有帖子ID,然后通过搜索和替换删除所有不相关的类别(或通过初始查询执行此操作),然后将此数据导入Excel,查看哪些帖子的品牌和零售商栏数超过2列?想知道是否有比这更优雅的解决方案?谢谢

2 个回复
SO网友:Colin Smillie

我想我应该为所有帖子设置一个循环,并在循环中执行以下操作:

$post_cats = get_the_category();
$brand_cats = 0;
$retail_cats = 0;
foreach ( $post_cats as $post_cat ) {
    if ($post_cat->category_parent == 187) {
        $brand_cats++;
    if ($post_cat->category_parent == 186) {
        $retail_cats++;
    }
}
if ( $brand_cats > 1 )
    echo "Duplicate Brand for Post #".get_the_ID;
if ( $retail_cats > 1 )
    echo "Duplicate Retailer for Post #".get_the_ID;
该代码未经测试,但应提供一般方法。

SO网友:Joey

多亏了科林,我终于找到了以下答案:

 <?php
$id = get_the_ID();
$post_cats = get_the_category();
$brand_cats = 0;
$retail_cats = 0;
foreach ( $post_cats as $post_cat ) {
    if ($post_cat->category_parent == 187) {
        $brand_cats++; }
    if ($post_cat->category_parent == 186) {
        $retail_cats++;
    }
}
if ( $brand_cats > 1 )  {
 echo "Multiple Brands ";
    echo $id;
    echo "<br>";
   } else {
    echo "";
}

if ( $retail_cats > 1 )  {
 echo "Multiple Retailers ";
    echo $id;
    echo "<br>";
   } else {
    echo "";
}
    ?>
然后在WP查询中使用它来选择我需要搜索的帖子-这会输出一个帖子ID列表,以及问题是零售商类别太多还是品牌太多。

结束

相关推荐

wp_list_categories + widget

使用下面的代码,我添加了一个span标记,并将类别计数放置在链接中。add_filter(\'wp_list_categories\', \'cat_count_span\'); function cat_count_span($links) { $links = str_replace(\'</a> (\', \'<span>\', $links); $links = str_replace(\')\', \'<