在WordPress中使用PHP GLOB()时遇到问题

时间:2017-12-19 作者:Mona Coder

在WordPress中使用纯PHP代码,我在获取glob() 生成图像源。

<div class="carousel-inner" role="listbox" style="height=600px; width=1000px;">
    <?php
     $directory = "http://geocaa.com/wp-content/themes/Booting/img/services/";
     $images = glob($directory . "*.png");
      foreach($images as $image)
       {
        echo \'<div class="dynamic item">\';
        echo \' <img src="\'.$image.\'" alt="...">\';
        echo \' </div>\';
       }
    ?>
</div>
正如你所看到的,我试图对$directory"http://geocaa.com/wp-content/themes/Booting/img/services/"; 而且我已经在这两个帖子上进行了调查 [Post 1 &;Post 2 ] 关于同样的问题,但那里的解决方案仍然不适合我!

这个get_theme_root() 除了get_template_directory() 返回更像

$images = glob(get_template_directory().$directory . "*.png");
/home/vcbb/public\\u html/wp-content/themes/geocaa/img/services/img。巴布亚新几内亚

对图像src无效

我也试过了get_template_directory_uri() 但仍然得到空数组

2 个回复
最合适的回答,由SO网友:gmazzap 整理而成

您应该使用路径glob, 不是URL。

但是src 属性需要URL。

因此,类似这样的方法应该有效:

$base_dir = trailingslashit(get_template_directory());
$dir      = \'img/services/\';
$images   = glob($base_dir.$dir.\'*.png\');

foreach($images as $image) {
    $url = get_theme_file_uri($dir.basename($image));
    printf(\'<div class="dynamic item"><img src="%s" alt=""></div>\', esc_url($url));
}
在我使用的地方:

  • get_template_directory 获取(父)主题的根路径basename 仅获取当前图像文件路径的文件名get_theme_file_uri 以子主题友好的方式获取图像的完整URL:如果在子主题中找到图像,将从那里使用,否则将从父主题使用

SO网友:Elex

我想你只要试试get_stylesheet_directory().

$images = glob(get_stylesheet_directory()."/img/services/*.png");
您正在使用glob 在URL上,实际上不是路径。

结束

相关推荐

使用自己的php脚本从wp标题批量生成wp分类标签

我想使用插件将wp标题生成到标签中,https://wordpress.org/plugins/wp-full-auto-tags-manager/,因为我有数百万个帖子,所以日程表/cronjob工作不正常。所以我想用self-php脚本手动执行,我可以使用插件中的一段代码并在ssh终端上独立运行它吗,这是一段代码:$nsw_sql_gen_tags = $wpdb - > prepare(\" SELECT ID, post_title FROM $wpdb->posts WHERE po