get_category_parents数组wordpress

时间:2018-10-11 21:14:33

标签: php wordpress

好,所以我正在使用wordpress和PHP。

基本上,我从下拉菜单中选择了一个类别。然后我找到了父母。

但是随后出现了我似乎失败的部分。 $ parents的输出是一个带有名称而不是ID的字符串。

因此,我尝试将字符串中的每个单词放入数组中。 然后遍历它们并将其转换为ID号。

我评论了它似乎不起作用的地方。我在做什么错了?

//Create array
$categoriesArray = [];

//Get choice from wp-dropdown
$selected_val = $_POST['cat'];

//Get parents from choice divided by (this seems to output a string)
$parents = get_category_parents( $selected_val, true, ',' );

/*
//Make array from string
$categoriesArray = explode(",",$parents);

for ($i = 0; $i < count($categoriesArray); $i++) {
{
    $categoriesArray[$i] = get_cat_ID($categoriesArray[$i]);
}
*/

//the array should look something like this.
//$categoriesArray = ["21","44"];

2 个答案:

答案 0 :(得分:0)

try this,

function get_level($cat, $level = 0)
{
if ($cat->category_parent == 0) {
    return $level;
} else {
    $level++;
    $cat = get_category($cat->category_parent);
    return get_level($cat, $level);
}

}

if (is_category()) {
$cat = get_query_var('cat');
$your_cat = get_category($cat);

echo get_level($your_cat);
}

答案 1 :(得分:0)

这与类别名称有关。我需要使用子弹代替名字。

这是我的代码有效。我现在可以发布一个新帖子,并为其添加一个类别,其中包括他们的父母!

//Create array
$categoriesArray = [];

//Get choice from wp-dropdown
$selected_val = $_POST['cat'];

//Get parents from choice divided by ,
$parents = get_category_parents( $selected_val, true, ',',false);

//Make array from string
$categoriesArray = explode(",",$parents);
for ($i = 0; $i < count($categoriesArray); $i++)
{
    $categoriesArray[$i] = get_cat_ID($categoriesArray[$i]);
}