我正在尝试开发一个WordPress插件,该插件按类别获取帖子并使用javascript显示它们。
我需要显示类别名称。
我当时想我可以让php输出所有类别的对象:它们的ID和名称在一个对象中。
然后我可以用它来将帖子的类别ID转换为名称。
我尝试使用:
'all_categories' => array_map(
function ($fiteredCat) {
return (object) [
$fiteredCat->term_id => $fiteredCat->cat_name
];
},
array_filter($categories, function ($cat) {
// exclude 21 & 1
return $cat->term_id !== 21 && $cat->term_id !== 1;
}, ARRAY_FILTER_USE_BOTH))
但这正在输出
"all_categories" : {
"0" : {
"15" : Case Studies
},
"1" : {
"17" : Events
},
"4" : {
"13" : Useful Documents
},
"5" : {
"3" : videos
},
"6" : {
"16" : Webinars
},
"7" : {
12" : White Papers
}
}
如何使用PHP来获得此信息?:
"all_categories" : {
"15": "Case Studies",
"17": "Events",
....
}
答案 0 :(得分:0)
如果您退回
"post_categories" : {
"15": "Case Studies",
"17": "Events",
....
}
使用javascript,您将无法循环浏览各个类别。 我建议您要么使用多维数组,要么使用对象数组。
多维数组
[["15","Case Studies"],["17","Events"]]
然后在您的JavaScript中,您可以使用任意循环遍历数组
returned_array.forEach((arr)=>{
let key = arr[0];
let value = arr[1];
//Then you can do what you want with the data
})
对象数组
[{"15":"Case Studies"},{"17":"Events"}]
然后您执行遍历数组的基本操作
returned_array.forEach((obj)=>{
let key = Object.keys(obj);
let value = obj[key];
//Then you can do what you want with the data
})
希望这对您有帮助
答案 1 :(得分:0)
$post_categories = [];
array_walk(array_filter($categories, function ($cat) {
// exclude 21 & 1
return $cat->term_id !== 21 && $cat->term_id !== 1;
}, ARRAY_FILTER_USE_BOTH),
function ($fiteredCat) use(&$post_categories){
$post_categories[$fiteredCat->term_id] = $fiteredCat->cat_name;
});
echo json_encode(['post_categories' => $post_categories]);