不将WordPress基本URL添加到图像路径

时间:2018-11-01 作者:dpdenton

我以编程方式将图像附件添加到帖子中,但我并没有上载图像,只是存储托管在CDN上的完整url,例如。

https://i.atcdn.co.uk/imgser-uk/imgser-uk/servlet/media.jpg?id=fa348829bc924e28a649624e52f7191e&width=1024&height=768

但是,当呈现模板时,它会在基本url之前加上前缀,例如。

http://localhost:8888/wordpress/https://i.atcdn.co.uk/imgser-uk/imgser-uk/servlet/media.jpg?id=fa348829bc924e28a649624e52f7191e&width=1024&height=768

我正在尝试连接媒体附件来解决这个问题,但我什么都做不到。

如果路径以r\'http[s]?:/\'开头,是否有可用的筛选器挂钩,以便我无法预先设置基url?

Edit

这是我用来添加图像的代码:

$file = \'https://i.atcdn.co.uk/imgser-uk/imgser-uk/servlet/media.jpg?id=fa348829bc924e28a649624e52f7191e&width=1024&height=768\';

$attachment = array(
    \'post_title\' => $file,
    \'post_mime_type\' => "image/jpg",
);

$attach_id = wp_insert_attachment($attachment, $file);
$attach_data = wp_generate_attachment_metadata($attach_id, $file);
wp_update_attachment_metadata($attach_id, $attach_data);

1 个回复
SO网友:sandrodz

不能以这种方式插入远程文件。

<?php wp_insert_attachment( $attachment, $filename, $parent_post_id ); ?>
$文件名(字符串)(可选)文件在服务器上的位置。使用absolute path and not the URI of the file. 文件必须在上载中

https://codex.wordpress.org/Function_Reference/wp_insert_attachment

您应该首先将其下载到temp dir。

如果您希望在CDN上保留文件并只保存URI,请考虑添加一个自定义字段并将其保存在那里。

结束

相关推荐

apply_filters to $GLOBALS

我正在使用Pootle页面构建插件构建一个单页网站。使用get\\u page,我在1页上显示每个单独的页面。为了针对Pootle页面生成器内容,我使用以下代码:$content = $GLOBALS[\'Pootle_Page_Builder_Render_Layout\']->panels_render( $page_data->ID ); 当我尝试实现一个像旋转木马这样的插件时,我需要使用一个短代码,但短代码不起作用。为了使短代码有效,我需要使用apply_filters(\'