Wordpress:使用 glob() returns 一个空数组

Wordpress: Using glob() returns an empty array

我正在尝试从指定目录中提取所有图像,然后显示它们。我在常规网站中使用了下面的代码并且它有效

<?php $dirname = "images/tile/tile2/";
  $images = glob($dirname."*.jpg");

  foreach($images as $image) {
  echo '<li><img src="'.$image.'" /><br /></li>';
}?>

我现在已将这段代码移动并修改到一个 wordpress 站点,我得到一个空数组。

<?php $dirname = get_template_directory_uri()."/images/tile/tile1/";
      $images = glob($dirname. "*.jpg"); 
      //$images = glob($dirname."*. {jpg}", GLOB_BRACE); - tried with GLOB_RACE
      foreach($images as $image) {
        echo '<li><img src="'.$image.'" /><br /></li>';
}?>

第二个密码

<?php define('ACCREDPATH', get_template_directory_uri() . '/images/tile/tile1/');
 $images = glob(ACCREDPATH. "*.jpg");
 //$images = glob(ACCREDPATH. "*. {jpg}", GLOB_BRACE); - tried with GLOB_RACE 
foreach($images as $image) {
   echo '<li><img src="'.$image.'" /><br /></li>';
}?>

请提供任何帮助。

glob 在本地路径而不是 URL 上工作。该函数需要能够访问它无法远程访问的服务器文件系统(通过 URL)。

http://php.net/manual/en/function.glob.php

您在工作代码中提供的路径是相对的。它之所以起作用,是因为它既可以用作文件路径,也可以用作 URL.

要使用主题的绝对路径获得相同的结果,您需要使用 get_template_directory()。在提供的示例中,我使用 get_template_directory() 获取绝对路径并使用 get_template_directory_uri() 输出为 URL.

示例:

$theme_img_path = '/images/tile/tile1/';
$images  = glob( get_template_directory() . $theme_img_path . '*.jpg' );

foreach ( $images as $image ) {

    // Convert the filename into an absolute URL.
    echo get_template_directory_uri() . $theme_img_path . basename( $image );
}

您第二次尝试时还有一个问题值得指出。您不能使用函数来设置常量的值。