【问题标题】:is_dir not recognizing valid directory PHP Wordpressis_dir 无法识别有效目录 PHP Wordpress
【发布时间】:2016-01-01 08:02:21
【问题描述】:

我正在为我的网站制作一个滑块,这是用 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() 视为目录,我已经没有想法了。

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    所以它向我报告的路径名是 "http://localhost/wp/wp-content/themes/ColdMetalGray/assets/images/thumbnails/games/7hours" 这是一个有效的目录。

    is_dir() 不能在网络上运行,它只能在本地运行。即,它需要一个目录名,而不是一个 URI。您需要将服务器上目录的实际路径传递给它。

    编辑:is_dir() 确实适用于某些流包装器,但 HTTP 不是其中之一。

    【讨论】:

      【解决方案2】:

      不要使用get_template_directory_uri(),使用get_template_directory(),那个

      返回当前主题目录的绝对服务器路径(例如:/home/user/public_html/wp-content/themes/my_theme),而不是 URI。

      【讨论】:

      • 做到了。我需要 get_template_directory() 用于 is_dir(),然后 get_template_directory_uri() 用于实际引用图像。谢谢。
      【解决方案3】:

      代码对我来说看起来不错,这里有一些你可以测试的东西,

      1)停用主题并选择另一个主题,然后重新激活您的主题以查看它是否有所不同,当您重新激活它时,wordpress 会使用一些东西并获得正确的信息

      2) 如果该方法不起作用,您可以将 get_template_directory_url() 替换为 get_bloginfo('template_url)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-13
        • 2021-05-06
        • 1970-01-01
        • 2020-10-08
        • 2014-06-08
        • 1970-01-01
        相关资源
        最近更新 更多