0

我已经为此苦苦挣扎了一段时间。

我有一个使用 jQuery 循环插件运行的图片库,并使用 PHP glob() 从文件夹中提取文件。问题是,当我导航到另一个页面时,由于在文件路径的开头附加了新页面的 url,画廊会中断。

例子:

头版网址:http://localhost/project/image-display-images/image.jpg

其他页面网址:http://localhost/**NEWPAGE**/project/image-display-images/image.jpg

这是我的代码:

$files = glob('image-display-images/*.*');

       for ($i=1; $i<count($files); $i++)

       {
          $num = $files[$i];
          echo '<img src="'.$num.'"'.' alt="Campus Images" width="362" height="246"/>';
       }

这将生成一个图像列表供 jQuery 循环滚动浏览。它只适用于首页。

有任何想法吗?

解决了!

这是我的新代码:

$files = glob(ABSPATH.'/image-display-images/*.*');

foreach ($files as $f) {
    echo '<image src="'.home_url(str_replace(ABSPATH,'',$f)).'"alt="Campus Images" width="362" height="246"/>';

}

这适用于所有页面。

谢谢!

4

2 回答 2

1

使用绝对路径:

$files = glob(ABSPATH.'image-display-images/*.*');

WordPress 核心设置了这个ABSPATH常数,所以它应该是相当可靠的。

glob处理文件系统路径,但您正在尝试加载 URL。要以您尝试的方式显示文件,您需要将结果转换为 URL。这是一个简单的例子。

$files = glob(ABSPATH."*.*");
foreach ($files as $f) {
  echo home_url(str_replace(ABSPATH,'',$f));
}

您最好编写自己的函数来获取文件名,而不是取决于glob哪个确实带有关于在某些系统上不可用的警告。请参阅:http ://codex.wordpress.org/Filesystem_API

于 2013-02-22T15:50:35.723 回答
0

定义画廊的完整路径,而不是'image-display-images/*.*' 例如glob('/var/etc/www/image-display-images/*.*')

于 2013-02-22T15:49:38.720 回答