is_dir无法识别有效的PHP Wordpress目录

时间:2015-10-04 16:03:56

标签: php wordpress

我正在为我的网站整理一个滑块,这是用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()看作目录。

3 个答案:

答案 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。