我一直在努力解决这个问题。
我有一个使用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"/>';
}
这适用于所有页面。
谢谢!
答案 0 :(得分:1)
使用绝对路径:
$files = glob(ABSPATH.'image-display-images/*.*');
WordPress核心设置ABSPATH
常量,因此它应该相当可靠。
glob
处理文件系统路径,但您正在尝试加载网址。要以您尝试的方式显示文件,您需要将结果转换为URL。这是一个简单的例子。
$files = glob(ABSPATH."*.*");
foreach ($files as $f) {
echo home_url(str_replace(ABSPATH,'',$f));
}
您最好编写自己的函数来获取文件名,而不是依赖于glob
,它会在某些系统上发出警告。请参阅:http://codex.wordpress.org/Filesystem_API
答案 1 :(得分:0)
定义图库的完整路径,而不是'image-display-images/*.*'
例如glob('/var/etc/www/image-display-images/*.*')