wp_get_attachment_url() 处理完整的文件路径,如
http://example.com/wp-content/uploads/2014/12/aura.mp3
我想要没有所以的 url http://example.com/
,我想要上面的例子wp-content/uploads/2014/12/aura.mp3
而不是http://example.com/wp-content/uploads/2014/12/aura.mp3
. 怎么做?
您可以很容易地通过/将其分解,然后使用索引 3 进行分解。示例
$url = wp_get_attachment_url(id); //id is file's id
$urllocal = explode(site_url(), $url)[1]; //output local path
你可以使用 PHP 的函数explode
。
这是代码:
<?php
$image_url = wp_get_attachment_url( 9 ); //ID of your attachment
$my_image_url = explode('/',$image_url,4);
echo $my_image_url[3];
?>
您可以implode
从头到尾打开整个网址,/
然后array_slice
将其重新插入/
.
$url = wp_get_attachment_url($item->ID); //id is file's id
$url_relative = implode(array_slice(explode('/', $url),-3,3),'/');
//Returns: 2019/08/image.jpg
这样,如果您的 WordPress 位于子域或本地主机上,或者图像位于 S3 上,它就不会崩溃。
这是使用 WordPress 功能的 WordPress 方式(避免黑客攻击):
$fullsize_path = get_attached_file( $attachment_id ); // Full path
$filename_only = basename( get_attached_file( $attachment_id ) ); // Just the file name
WordPress 有很多功能,所以首先尝试在文档中找到该功能:https ://developer.wordpress.org/reference/functions/get_attached_file/