Устранение неполадок «Предупреждение: указан неверный аргумент для foreach ()» при обходе фида Wordpress JSON - PullRequest
2 голосов
/ 26 мая 2011

Мне нужно получить теги для постов WordPress в скрипте JSON. Приведенный ниже код был в исходном скрипте, но он ломается, если сообщения не имеют более двух тегов, и выдает предупреждение Warning: Invalid argument supplied for foreach().

$tags = array();
foreach((get_the_tags()) as $tag) {
    $tags[] = $tag->name; 
}
$single["tags"] = $tags;

Вот код, который я обновил, чтобы он работал, если есть менее двух тегов, но это приведет к добавлению всех тегов к следующему сообщению в каждом. Таким образом, если в первом сообщении есть теги tag1 и tag2, а во втором - tag3 и tag4, третий пост в фиде JSON будет содержать теги tag1, tag2, tag3, tag4 "и" tag5 "(даже если он должен иметь просто" tag5 ".

$my_tags = get_the_tags();
if ($my_tags){
    foreach($my_tags as $tag) {
        $tags[] = $tag->name; 
    }
}

1 Ответ

2 голосов
/ 26 мая 2011

есть функция для проверки, является ли она массивом, она называется is_array(), подробнее -> http://php.net/manual/en/function.is-array.php

if (is_array($my_tags)){

также очищает этот массив каждый раз, когда вы просматриваете сообщение, простодобавив код из вашего первого примера:

$my_tags = array();
$my_tags = get_the_tags();
if (is_array($my_tags)){
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...