【问题标题】:File path without domain name from wp_get_attachment_url()来自 wp_get_attachment_url() 的没有域名的文件路径
【发布时间】:2014-12-31 08:11:32
【问题描述】:

wp_get_attachment_url() 处理完整文件路径,如

http://example.com/wp-content/uploads/2014/12/aura.mp3

我想要没有http://example.com/ 的网址 所以,我希望上面的例子是wp-content/uploads/2014/12/aura.mp3 而不是http://example.com/wp-content/uploads/2014/12/aura.mp3。怎么做?

【问题讨论】:

标签: wordpress codex


【解决方案1】:

你可以很容易地explode/ 然后参加索引为 3 的部分。示例

$url = wp_get_attachment_url(id); //id is file's id
$urllocal = explode(site_url(), $url)[1]; //output local path

【讨论】:

  • 它只返回 wp-content,而不是完整的文件路径
  • 您确定您尝试过最新版本吗?我必须在发布后修复它。
  • 我用这个$mp3remoteurl = wp_get_attachment_url($_GET["id"]); $mp3localurl = ''.explode("/", $mp3remoteurl)[1].'/'.explode("/", $mp3remoteurl)[2].'/'.explode("/", $mp3remoteurl)[3].'/'.explode("/", $mp3remoteurl)[4].'/'.explode("/", $mp3remoteurl)[5].''; 来获取 wp-content/uploads/2014/12/aura.mp3 但这不是正确的方法。我说的不对吗?
  • 是的。 wp 4.1 - 最新版本,位于 localhost
  • @SahriarSaikat:嗯,这是一种方法,但肯定不是最漂亮的。这就是为什么我在爆炸时更改了代码以使用服务器名称:explode("example.com/", $url)[1];
【解决方案2】:

你可以使用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];
    ?>

【讨论】:

  • 谢谢。顺便说一句,我得到了正确的答案。
  • 其实site_url()的用法还不错,没想到:)
  • 是的..快乐编码! :)
【解决方案3】:

您可以在/array_slice 上从末尾implode 整个网址,然后在/ 上内爆。

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

【讨论】:

  • 您已经回答了一个非常古老的问题。如果我现在要回答我 5 年前的问题,我会说str_replace('http://example.com/', '', wp_get_attachment_url($item-&gt;ID)); 是一个不错的选择。
【解决方案4】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多