从get_the_category()生成的数组中删除某些值

时间:2015-03-04 01:54:02

标签: php wordpress

我想打印一些Wordpress帖子的类别。为了实现这一点,我使用了get_the_category();函数,我设置它等于一个新变量。

在类别得到回应之前,我想删除其中的两个("新闻"和"排名")并重命名类别"日本"和"英语"进入"日本新闻"和"英语新闻"。但是,当我运行我的代码时,它并不是类别,因为所有类别都已打印出来。

以下是当前代码:

$categories = get_the_category();

$del_val1 = 'News';
$del_val2 = 'Ranking';

 if(($key = array_search($del_val1, $categories)) !== false) {
        unset($categories[$key]);
    }
 if(($key = array_search($del_val2, $categories)) !== false) {
            unset($categories[$key]);
        }

echo $categories->cat_name;

这只是数组内容的一个例子:

array(2) {
  [0]=>
  object(stdClass)#3051 (17) {
    ["term_id"]=>
    &int(30)
    ["name"]=>
    &string(11) "Deutschland"
    ["slug"]=>
    &string(11) "deutschland"
    ["term_group"]=>
    int(0)
    ["term_taxonomy_id"]=>
    int(30)
    ["taxonomy"]=>
    string(8) "category"
    ["description"]=>
    &string(0) ""
    ["parent"]=>
    &int(2)
    ["count"]=>
    &int(3)
    ["object_id"]=>
    int(527)
    ["filter"]=>
    string(3) "raw"
    ["cat_ID"]=>
    &int(30)
    ["category_count"]=>
    &int(3)
    ["category_description"]=>
    &string(0) ""
    ["cat_name"]=>
    &string(11) "Deutschland"
    ["category_nicename"]=>
    &string(11) "deutschland"
    ["category_parent"]=>
    &int(2)
  }
  [1]=>
  object(stdClass)#3068 (17) {
    ["term_id"]=>
    &int(2)
    ["name"]=>
    &string(4) "News"
    ["slug"]=>
    &string(4) "news"
    ["term_group"]=>
    int(0)
    ["term_taxonomy_id"]=>
    int(2)
    ["taxonomy"]=>
    string(8) "category"
    ["description"]=>
    &string(0) ""
    ["parent"]=>
    &int(0)
    ["count"]=>
    &int(6)
    ["object_id"]=>
    int(527)
    ["filter"]=>
    string(3) "raw"
    ["cat_ID"]=>
    &int(2)
    ["category_count"]=>
    &int(6)
    ["category_description"]=>
    &string(0) ""
    ["cat_name"]=>
    &string(4) "News"
    ["category_nicename"]=>
    &string(4) "news"
    ["category_parent"]=>
    &int(0)
  }
}

1 个答案:

答案 0 :(得分:0)

foreach ($categories as $key=>$cat)
{
    if (in_array($cat->cat_name, array($del_val1, $del_val2))) {
        unset($categories [$key]);
    }
}

array_search并不好,因为它搜索数组值,但数组是一个对象数组,类别名称是一个对象属性。