Cant исправить это предупреждение: неверный аргумент, предоставленный foreach () в

Я не знаю, что я делаю неправильно. все работает нормально. но я получаю предупреждение на странице

Warning: Invalid argument supplied for foreach() in /public_html/wp/xtheme/wp content/themes/tab.php on line 31 

Это вкладка Shortcode для вкладки. и этот вопрос с петлей foreach
$arr = get_post_meta($post->ID, 'tab_details',true); foreach ($arr as $part){....}

 function tab_shortcode($atts) { extract(shortcode_atts(array( 'category' => '', ), $atts, 'tab_shortcode')); $q = new WP_Query( array('posts_per_page' => '3', 'orderby' => 'menu_order', 'order' => 'DESC', 'post_type' => 'post_tab',) ); global $post; $list = ' <ul class="buttons-tab"> '; while ($q->have_posts()) : $q->the_post(); $tab_id = get_the_ID(); $list .= '<li><a href="#' . $tab_id . '">' . get_the_title() . '</a></li>'; endwhile; $list.= ' </ul> <div class="tab-content" id="tab">'; while ($q->have_posts()) : $q->the_post(); $tab_id = get_the_ID(); $arr = get_post_meta($post->ID, 'tab_details',true); $tab_item = ''; foreach ($arr as $part) { $tab_item .= '<div class="text-icon-left"> <span class="iconCircle fa ' . $part['icon'] . '"></span> <div class="text"> <p>' . $part['text'] . '</p> </div> </div>'; } $list .= ' <div class="item tab-pane" data-hash="' . $tab_id . '">' . $tab_item . '</div>'; endwhile; $list.= ' </div> '; wp_reset_query(); return $list; } add_shortcode('tab', 'tab_shortcode'); 

Вкладка отображается нормально, но это предупреждение отображается на странице.

Solutions Collecting From Web of "Cant исправить это предупреждение: неверный аргумент, предоставленный foreach () в"

Когда вы установите третий параметр get_post_meta true, функция возвращает строку, как вы можете прочитать в кодексе . Так:

 $arr = get_post_meta($post->ID, 'tab_details', true); 

Делает $arr строкой, а строка не является допустимым аргументом для цикла PHP foreach и это сообщение об ошибке.

Вместо этого, если вы установите третий параметр в false или оставьте его пустым, вы получите массив со всеми значениями для выделенной meta_key (или пустым массивом, если значения не найдены):

 $arr = get_post_meta($post->ID, 'tab_details'); //Now $arr is an array foreach($arr as $part){....}