我想打印一些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)
}
}
答案 0 :(得分:0)
foreach ($categories as $key=>$cat)
{
if (in_array($cat->cat_name, array($del_val1, $del_val2))) {
unset($categories [$key]);
}
}
array_search
并不好,因为它搜索数组值,但数组是一个对象数组,类别名称是一个对象属性。