0

警告を生成する次の PHP コードがあります。

Warning: Invalid argument supplied for foreach() php wordpress

コードは次のとおりです。

<?php   
    $post_status1  = 'publish'; 
    $post_type1 = 'page';
    $featucat = "about";
    $featucount = "1";

    $my_query = new WP_Query('post_status='. $post_status1 .'&post_type='. $post_type1.'');  
    if ($my_query->have_posts()){
        while ($my_query->have_posts()) : $my_query->the_post();

            $front_values = get_post_custom_values('Homepage_Blog_01p', get_the_ID());
            foreach ( $front_values as $front_key => $result_value ) {
                if($result_value == 'about') {
?>

                    <div class="thewidgets">
                        <?php
                        $description_values = get_post_custom_values('Description_Field', get_the_ID());
                        foreach ( $description_values as $description_key => $description_value ) {
                            echo $description_value;

                        }
                        ?>
                        <a href="<?php the_permalink(); ?>" title="Read the whole post" class="rm">Read More</a>
                    </div>
    <?php } } endwhile; } ?>

完全なエラーは次のとおりです。

Warning: Invalid argument supplied for foreach() in 
D:\PROGRAM FILES\wamp\www\westchester\wp-content\themes\
computerrepair\footer.php on line 22"

私は何を間違っていますか?

4

3 に答える 3

1

$front_valuesそれを取得している場合、配列ではありません。その内容を確認し、合法的に配列でない場合 (たとえば、結果がないときにget_post_custom_values返される場合)は、条件でラップして説明します。nullforeachif(is_array($front_values)) {

于 2013-08-18T20:02:44.420 に答える
0

この PHP 警告を再現する方法:

これを入れてくださいa.php

<?php
$skipper = "abcd";
foreach ($skipper as $item){       //warning happens on this line.
    print "ok";
}

?>

版画:

eric@dev ~ $ php a.php
PHP Warning:  Invalid argument supplied for foreach() in 
/var/www/sandbox/eric/code/php/run06/a.php on line 3
PHP Stack trace:

警告は、それが言うことを正確に意味します。foreach で評価できないパラメータを foreach 構造に渡しました。foreach ループの前に、最初のパラメーターが foreach で処理できる構造であることを確認してください。

于 2014-08-11T18:03:13.140 に答える