个性化阅读
专注于IT技术分析

检测文件是否存在于wordpress主题中?

我正在创建一个WordPress模板。

我正在显示一个视频目录中的一个, 例如

<video controls preload="auto" autoplay loop poster="<?= item_image; ?>">
<source src="<?= $item_video_mp4; ?>" type='video/mp4' />
<source src="<?= $item_video_webm; ?>" type='video/webm' />
</video>

但是, 在某些情况下, 该项目没有视频文件。在这种情况下, 我只想显示替代内容。

我试图使用php的file_exists(), 但我读到它仅适用于本地路径, 不适用于url。所以我试图使用本地相对路径到文件。

我的视频网址是根据帖子标题计算得出的:

$item_path = '/wp-content/uploads/item_media/';
$item_name = get_the_title();
$item_video_mp4 =  $item_path . $item_name .'.mp4';

这项工作有效, 它将显示视频和海报框架(如果存在)。问题是, 我需要检测视频是否不存在。

由于php模板位于/ wp-content / themes / mytheme中, 因此我尝试使用该模板

$filepath = '../../uploads/item_media/'. $item_name .'.mp4';
if (file_exists($filepath)) {
   echo "The file $filepath exists";
} else {
   echo "The file $filepath does not exist";
}

但是文本始终返回false。

有任何想法吗?

更新

我也尝试过此方法:

$filepath = WP_CONTENT_URL . '/uploads/item_media/'. $item_name .'.mp4'

哪个回声

"http://des.dev/wp-content/uploads/item_media/4595DW.mp4 does not exist"

即使有。


#1


这似乎可行, 不确定是否是最佳方法:

$filepath = $_SERVER['DOCUMENT_ROOT'] . '/wp-content/uploads/item_media/'. $ring .'.mp4'

#2


你应该尝试使用此代替:

$filepath = WP_CONTENT_URL . '/uploads/item_media/'. $item_name .'.mp4';
if (file_exists($_SERVER['DOCUMENT_ROOT'] . $filepath)) {
    ...

问题在于PHP的file_exists函数采用相对路径或绝对路径, 并且看起来两者都不匹配你的文件系统结构。 $ _SERVER [‘DOCUMENT_ROOT’]。上面的部分将在你要检查的路径之前加上Apache DocumentRoot设置, 使file_exists的参数成为绝对路径。

赞(0) 打赏
未经允许不得转载:srcmini » 检测文件是否存在于wordpress主题中?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏