Как передать массив Чтобы get_the_category_by_ID () и получить массив назад?

Я пытаюсь передать массив идентификаторов категорий в get_category_by_ID() , чтобы вернуть массив имен категорий. Поскольку я все еще пытаюсь заставить это работать, я просто использую var_dump() для вывода. Я использую значения 1, 5, 3, поскольку 5 и 3 являются категориями, которые у меня есть, и 1 не классифицирован, и для этого мне нужно это работать.

Я начал с этого:

  $CatID = array(1, 5, 3,); foreach ($CatID as $ID) { $names = get_the_category_by_ID($ID); } var_dump($names); 

Я вернул правильное название категории для категории 3, но ничего больше. Итак, я попробовал это так:

 $CatID = array(1, 5, 3,); $x=0; foreach ($CatID as $ID) { if ($x==3) break; $names[$x] = get_the_category_by_ID($ID[$x]); $x++; } var_dump($names); 

На этот раз я получил этот массив ошибок:

 array 0 => object(WP_Error)[262] public 'errors' => array 'invalid_term' => array ... public 'error_data' => array empty 1 => object(WP_Error)[261] public 'errors' => array 'invalid_term' => array ... public 'error_data' => array empty 2 => object(WP_Error)[215] public 'errors' => array 'invalid_term' => array ... public 'error_data' => array empty 

Solutions Collecting From Web of "Как передать массив Чтобы get_the_category_by_ID () и получить массив назад?"

Измените свой первый кусок кода следующим образом:

 $names = array(); $CatID = array( 1, 5, 3,); foreach ( $CatID as $ID ) { $names[] = get_the_category_by_ID( $ID ); // uncomment the next line to get the name tied to the ID // $names[$ID] = get_the_category_by_ID( $ID ); } var_dump( $names ); 

См. Ссылку на array() PHP array() для получения дополнительной информации об использовании массивов.

Почему ваш код не работает

В первом примере вы зацикливаете свой массив $CatID , назначая возврат из get_the_category_by_ID() в $names . Каждый раз через цикл вы переписываете переменную $names , поэтому только 3 – последняя в вашем списке – прилипает.

Во втором примере вы слишком далеко переходите в другую сторону – вы пытаетесь получить значение $ID[$x] , но $ID не является массивом, поэтому вы передаете недопустимое значение ( вероятно, null ) для get_the_category_by_ID() . Вот почему он возвращает passel объектов WP_Error .