首先,这里是全部错误:
PHP Fatal error: Call to undefined function download_url() in /path/to/wordpress/wp-admin/includes/media.php on line 562
我还将相关功能张贴在问题的底部。
我正在修改我公司网站的一个脚本,该脚本允许我们自动从我们的内容提供商检索和上传内容。由于他们组织XML的方式,我需要将与文章相关的图像与文章主体分开上传。我尝试使用media\\u sideload\\u image()来执行此操作,但收到了错误:
调用download\\u url并导致错误的函数(media\\u sideload\\u image()):
PHP Fatal error: Call to undefined function download_url() in /path/to/wordpress/wp-admin/includes/media.php on line 562
可以看出,我成功地加入了媒体。php——我的脚本的其余部分已经在该站点上实现,我在访问Wordpress文件时没有遇到任何其他问题。错误似乎与介质有关。php本身——我发现这很不寻常。
有什么办法可以解决这个问题吗?或者,如果您知道我可以使用的另一个函数,也将不胜感激。
无论如何,如果你需要关于这个问题的更多细节,尽管问吧。
/**
* Download an image from the specified URL and attach it to a post.
*
* @since 2.6.0
*
* @param string $file The URL of the image to download
* @param int $post_id The post ID the media is to be associated with
* @param string $desc Optional. Description of the image
* @return string|WP_Error Populated HTML img tag on success
*/
function media_sideload_image($file, $post_id, $desc = null) {
if ( ! empty($file) ) {
// Download file to temp location
$tmp = download_url( $file );
// Set variables for storage
// fix file filename for query strings
preg_match(\'/[^\\?]+\\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/\', $file, $matches);
$file_array[\'name\'] = basename($matches[0]);
$file_array[\'tmp_name\'] = $tmp;
// If error storing temporarily, unlink
if ( is_wp_error( $tmp ) ) {
@unlink($file_array[\'tmp_name\']);
$file_array[\'tmp_name\'] = \'\';
}
// do the validation and storage stuff
$id = media_handle_sideload( $file_array, $post_id, $desc );
// If error storing permanently, unlink
if ( is_wp_error($id) ) {
@unlink($file_array[\'tmp_name\']);
return $id;
}
$src = wp_get_attachment_url( $id );
}
// Finally check to make sure the file has been saved, then return the html
if ( ! empty($src) ) {
$alt = isset($desc) ? esc_attr($desc) : \'\';
$html = "<img src=\'$src\' alt=\'$alt\' />";
return $html;
}
}
在代码中调用media\\u sideload\\u image()的函数:
//Upload the image if it exists, and return the post_id
function upload_image($post_id, $image_url) {
require_once(\'wp-admin/includes/media.php\');
$image_url = \'http://admin.gkbusiness.com/gkbusiness/files/2011/04/LOGOGKMBUS1.jpg\';
media_sideload_image($image_url, $post_id);
return $post_id;
}