次の関数は空の文字列を返します。誰かが以下のコードで何が間違っていると示唆できますか?私はこの関数にAJAX呼び出しを行っています。Wordpress関数へのAjax呼び出しが空の配列を返します
function LoadImagesForMenus() {
$filenameArray = [];
$validextensions = ["gif", "jpg", "jpeg", "png"];
$handle = opendir(get_template_directory().'/analyzer-images/');
while ($file = readdir($handle)) {
if ($file !== '.' && $file !== '..' && !empty($file)) {
$filenameArray[] = $file;
$ext = pathinfo($file, PATHINFO_EXTENSION);
if (in_array($ext, $validextensions)) {
$fileArray = [];
$fileArray["fileName"] = "http://xn--ernhrungsberaterzrich-71b08c.ch/wp-content/themes/abundance/analyzer-images/$file";
list($width, $height) = getimagesize("/home/httpd/vhosts/xn--ernhrungsberaterzrich-71b08c.ch/httpdocs/wp-content/themes/abundance/analyzer-images/$file");
$fileArray["width"] = $width;
$fileArray["height"] = $height;
if ($width !== null && $height !== null) {
array_push($filenameArray, $fileArray);
}
}
}
}
echo json_encode($filenameArray);
exit(0);
}
おかげ
何をデバッグしようとしましたか?ファイルが存在し、パスが正しいこと、ファイルが正常に読み込まれていること、$ filenameArrayが正しい値を持っていることなどを確認しましたか? – FluffyKitten
ファイルはフォルダ内に存在します。 Wordpressは上記のコードでエラーを記録しませんでした。移動ステートメントecho json_encode($ filenameArray); whileループ内では、画像情報とともに配列を返します。 – user1404963
問題は、配列が何とかクリアされているということですよね?whileループでは、配列の印刷がどこにあったのですか?if($ width!== null && $ height!== null) '? – FluffyKitten