5

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. 怎么做?

4

4 回答 4

3

您可以很容易地通过/将其分解,然后使用索引 3 进行分解。示例

$url = wp_get_attachment_url(id); //id is file's id
$urllocal = explode(site_url(), $url)[1]; //output local path
于 2014-12-31T08:15:03.677 回答
0

你可以使用 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];
    ?>
于 2014-12-31T08:35:17.453 回答
0

您可以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 上,它就不会崩溃。

于 2019-08-14T07:01:15.050 回答
0

这是使用 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/

于 2021-07-05T16:17:56.547 回答