1

以下のコードを使用して配列が存在するかどうかを確認しようとしましたが、問題はその中getFieldOrder('image_gal')に画像がない場合にこのエラーが返されることです。

エラー出力

Warning: array_reverse() [function.array-reverse]: The argument should be an array in /home/sritamac/public_html/wp-content/plugins/magic-fields/get-custom.php on line 306

Warning: sort() expects parameter 1 to be array, null given in /home/sritamac/public_html/wp-content/plugins/magic-fields/get-custom.php on line 307

配列コード:

<?php
//var
$images = getFieldOrder('image_gal');

if (is_array($images)) {

    foreach ($images as $image) {

        if (get('image_gal', 1, $image) == TRUE) { //check if image_gallery_image has image 
?> 

    <div id="wrap">
        <ul id="mycarousel" class="jcarousel-skin-tango">
            <?php
            $images = getFieldOrder('image_gal');
            foreach ($images as $image) { //loop image 
            ?>
            <li>
                <a class="group3"  href="<?php echo get('image_gal', 1, $image);?>">
                    <img src="<?php echo get('image_gal', 1, $image);?>" width="150" height="150" alt="" />
                </a>
            </li>  
            <?php
            }
            ?>  
        </ul>
    </div>
<?php
            break;
        }
    }
}
?>

このテーマhttp://www.s5themes.com/theme/webfolio/を使用しており、ワードプレスのバージョンは 3.2.1 です。

マジック フィールド プラグインhttp://magicfields.org/

4

1 に答える 1

0

この問題は、配列ではない変数を渡しているために発生しますarray_reverse()sort()

解決 :

  1. パラメータを確認し、これらの関数を実行する前に、パラメータが配列の場合にのみこれらの関数を実行してください。機能を使用できis_array ます。

    if(is_array($array)){
        sort($array);
    }
    
  2. パラメータを確認してください。null または非配列の場合は配列にします。関数に渡す前に。

    if(!is_array($array) || $array = "" || $array = NULL){
        $array = array();
    }
    sort($array);
    

配列がnullであっても、他の機能には影響しないため、2番目のソリューションをお勧めします。

于 2013-03-04T04:47:06.980 に答える