WordPress是否正在从特定目录加载所有本地图像?

时间:2021-05-20 作者:game lover

我需要加载一些本地图像。。我以前使用此代码加载一些图像

        <?php 
        function loopImages(){
            $imagePath = get_stylesheet_directory()."/IMAGES/sponsors/";
            $filesList =glob($imagePath.\'*.{JPG,jpg,PNG,png}\', GLOB_BRACE);
            echo $filesList;
            foreach($filesList as $file){
                echo \'<img src="\'.$file.\'">\';
            }
        }
        loopImages();
    ?>
这几乎奏效了。我可以循环浏览文件,浏览器可以渲染8个img标记,但它显示它无法加载本地图像,所以我更改了get_stylesheet_directory()get_stylesheet_directory_uri() 像这样

         function loopImages(){
            $imagePath = get_stylesheet_directory_uri()."/IMAGES/sponsors/";
            $filesList =glob($imagePath.\'*.{JPG,jpg,PNG,png}\', GLOB_BRACE);
            echo $filesList;
            foreach($filesList as $file){
                echo \'<img src="\'.$file.\'">\';
            }
        }
        loopImages();
但是,它没有显示任何内容。什么都没有。我做错了什么?如何渲染本地图像?

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

get_stylesheet_directory 对于glob 函数要工作,您需要两者的组合,例如,获取该目录中的文件:

$imagePath = get_stylesheet_directory() . "/IMAGES/sponsors/";
$filesList = glob( $imagePath . \'*.{JPG,jpg,PNG,png}\', GLOB_BRACE );
并在该URL处显示文件:

$imagePathURL = get_stylesheet_directory_uri() . "/IMAGES/sponsors/";
...
    echo \'<img src="\' . esc_url( $imagePathURL . basename( $file ) ) . \'">\';
注意我把它包起来了esc_url, 这就是逃跑,我们这样做是为了确保安全,避免注射攻击。

TLDR:

  • glob 需要文件夹路径,但<img 想要一个URL

相关推荐

是否通过unctions.php创建页面模板?

我想为用户创建一个新的可选页面模板,允许他们识别网站上的哪些页面是;“服务”;页码(如管道、燃气配件等)。模板是页面的精确副本。php,但包含一些JSON LD(schema.org代码),用于;“服务”;他们网站上的页面。我真的不想要一个全新的服务页面。php文件,这只是一个页面的复写副本。php。(如何)我只能使用函数来执行此操作。php?添加新插件目前不是一个选项。