我正在为我的网站整理一个滑块,这是用Wordpress完成的。想法是滑块采用两个参数,一个路径名和一个项目名,并根据它填充。
这是功能:
function get_game_slider($name, $src_dir){
$image_dir = $src_dir . $name;
if(is_dir($image_dir)){
/* directory is valid, search directory here */
}
}
该函数位于我的functions.php文件中。它是从同一目录中的内容模板调用的,如下所示:
$dir = get_template_directory_uri() . "/assets/images/thumbnails/games/";
echo get_game_slider("7hours", $dir);
因此,它向我报告的路径名是“http://localhost/wp/wp-content/themes/ColdMetalGray/assets/images/thumbnails/games/7hours”,这是一个有效的目录。但是,它拒绝承认它。
作为一个测试,我在我的Wordpress安装之外构建了它,它认识到没问题(我使用了绝对路径而不是get_template_directory_uri())。似乎只有当我在Wordpress页面上使用它时才会给我这个问题。
这对Wordpress来说有点蠢吗?我已经没想到为什么这个目录没有被is_dir()看作目录。
答案 0 :(得分:2)
所以它报告给我的路径名是 " http://localhost/wp/wp-content/themes/ColdMetalGray/assets/images/thumbnails/games/7hours" 这是一个有效的目录。
is_dir()
不在网络上工作,只在本地工作。即,它需要一个目录名,而不是一个URI。您需要将它传递给服务器上目录的实际路径。
编辑:is_dir()
可以使用一些流包装器,但HTTP不是其中之一。
答案 1 :(得分:0)
代码看起来对我来说这里有一些你可以测试的东西,
1)停用主题并选择另一个主题,然后重新激活您的主题以查看它是否有所不同,当您重新激活它时,wordpress会输入一些内容并获取正确的信息
2)如果该剂量不起作用,您可以用get_bloginfo(' template_url)替换get_template_directory_url()
答案 2 :(得分:0)
请勿使用get_template_directory_uri()
,使用get_template_directory()
,
返回当前主题目录的绝对服务器路径(例如:/ home / user / public_html / wp-content / themes / my_theme),而不是URI。