我有一些代码:
<div id="image-cycle-container">
<ul id="image-cycle">
<?php
//Select the folder which the images are contained within and store as an array
$imgDir = get_stylesheet_directory_uri() . '/img/image-cycle/';
$images = glob($imgDir . '*.jpg');
foreach($images as $image){
echo 'something';
echo "<li><img src='".$image."' /></li>\n";
}
?>
</ul>
问题是没有显示图像(尽管它们确实存在)。我可以绝对引用它们,但PHP没有找到任何东西/数组是空的。我使用WAMP开发网站,我开始怀疑这是否是我生命中的祸根......
答案 0 :(得分:0)
根据评论,get_stylesheet_directory_uri()
方法返回的路径为http://127.0.0.1/xxxx/wp-content/themes/responsive-child/
。
然后直接在PHP glob()
函数中使用此路径。
简短的回答直接来自文档:
注意:此功能无法在remote files上运行,因为必须可以通过服务器的文件系统访问要检查的文件。
一个可能的解决方案,因为您知道当前域是什么,将从get_stylesheet_directory_uri()
返回的路径中删除域名,并在完整路径中使用结果:
$domain = 'http://127.0.0.1/';
$imgDir = get_stylesheet_directory_uri() . '/img/image-cycle/';
$imgDir = substr($imgDir, strlen($domain)); // strip the domain
$images = glob($imgDir . '*.jpg');
这会带回一系列图像,您可以在当前进行迭代。但是,此列表将相对于脚本正在执行的当前目录,因为它们不会以/
或域名为前缀。因此,我们可以将其添加回foreach
循环:
foreach($images as $image) {
$image = $domain . $image;
// ...
}