3

現在、「154x154.jpg」で終わることに基づいて、ディレクトリ内のすべての画像を取得するスクリプトを実行しています。基本的に私がやっていることは、ギャラリー ディレクトリを調べて画像のすべてのサムネイルを探し、それを Web サイトのメイン ページのスライド ギャラリーに出力することです。

<?php
// loop through the images
$count = 0;
$images = array();

foreach (glob("../../uploads/2012/05/*154x154.jpg") as $filename) {
    $images[$count] = $filename;    
    $count++;
}
for ($i = 0; $i < 7; $i++) {
    $random = mt_rand(1, $count - 1);
    echo '<li><a class="gal_img" href="#">';    
    echo '<span class="roll"></span>';
    echo '<img class="image" src="'.$images[$random].'" height="154" width="154" alt="" />';
    echo '</a></li>';
}

?>

これはそのままで問題なく動作しますが、現在のディレクトリの上のディレクトリからファイルを取得できるようにする必要があります。もう少し詳しく言うと:

画像フォルダー: http://root/wp-content/uploads/2012/05/
テーマフォルダー: http://root/wp-content/themes/theme_folder/

** 編集 **

ファイルに直接アクセスすると、上記のコードですべてが正常に実行されるようになりました。ただし、テーマ内で使用すると、コード内のファイルパスを除くすべてが生成されます。ワードプレス 3.3.2 の使用

4

1 に答える 1

1

試す:

foreach (glob("../images/*154x154.jpg") as $filename) {

アップデート:

もちろん、これは相対パスであり、含める必要があるファイルがスクリプトの現在の作業ディレクトリから 1 レベル上にある場合にのみ機能します。解決策: 絶対パスを使用してください。で始まるもの/。また、絶対パスはディスク上のパスであり、Web サイトのルート フォルダーではないことに注意してください。

于 2012-05-02T16:38:18.303 に答える