2014-10-22 40 views
0

我有一个脚本可以加载一些图像,我有一个$dir变量,它提供了这些图像的绝对路径(然后查找.jpg.png文件)。当路径正确时不加载图像PHP,Wordpress

$dir = dirname(__FILE__) . '/assets/img/universities/';

到该文件的路径低于:

/www/html/uniswales.ac.uk/htdocs/wp/wp-content/themes/roots-master/assets/img/universities/University1.jpg

的路径,图像是正确的,但它不会加载图像。我认为这是一个权限问题,但不能肯定。

这适用于我从头开始构建的网站,但不能在Wordpress网站上使用它。

在目录中img文件的权限是644和目录是755

UPDATE

当我回声$dirhttp://www.uniswales.ac.uk/assets/img/universities/

这里是我的整个脚本:

$a = array(); 
       $unis = array( "http://www.aber.ac.uk/en/", 
           "http://www.bangor.ac.uk/", 
           "http://www.cadarn.ac.uk/", 
           "http://www3.cardiffmet.ac.uk/", 
           "http://www.cardiff.ac.uk/", 
           "http://www.glyndwr.ac.uk/", 
           "http://www.open.ac.uk/", 
           "http://www.swansea.ac.uk/", 
           "http://www.southwales.ac.uk/", 
           "http://www.uwtsd.ac.uk/", 
           "http://www.wales.ac.uk/"); 

       $count = 0; 
       $dir = get_template_directory_uri().'/assets/img/universities/'; 
       echo $dir; 
       if ($handle = opendir($dir)) { 
        while (false !== ($file = readdir($handle))) { 
        if (preg_match("/\.png$/", $file)) $a[] = $file; 
        elseif (preg_match("/\.jpg$/", $file)) $a[] = $file; 
        elseif (preg_match("/\.jpeg$/", $file)) $a[] = $file; 
        } 
        closedir($handle); 
       } 

       sort($a); 

       foreach ($a as $i) { 
        echo $i; 
        echo "<div class='col-sm-4'> 
          <a href='". $unis[$count] . "'> 
          <div class='grid-box'> 
           <img class='uni-image' src='" . $dir . $i . "' /> 
          "; 
        echo "<h5>" . pathinfo($i, PATHINFO_FILENAME) . "</h5>"; 
        echo "</div></a></div>"; //END OF COLUMN 
        $count++; 
       } 

此脚本完美适用于不是Wordpress的网站。有任何想法吗?

+0

您是否将此路径发送到浏览器?您不能在客户端使用绝对服务器路径。 – Jerodev 2014-10-22 11:36:08

+0

请检查'img'标签的来源并在浏览器上运行。 – 2014-10-22 12:37:26

回答

0

您应该使用:

$dir = get_stylesheet_directory_uri() . '/assets/img/universities/'; 

正如在评论中提到的,你不能使用绝对路径,服务器的东西,正在输出的客户端。

注意:get_stylesheed_directory_uri()将检索当前主题/子主题的样式表目录URI。如果您使用的是儿童主题,并且需要父主题目录,请使用get_template_directory_uri()

+0

这为我提供了一个合适的网址'www.mysite.com/assets/img/universities /',但图像不会加载:/ – Daniel 2014-10-22 12:01:36

+0

这是什么错误? – rnevius 2014-10-22 12:06:32

+0

...这应该给你'www.mysite.com/wp-content/themes/roots-master/assets/img/universities /' – rnevius 2014-10-22 12:07:15