如何将通过ftp上传的图片注册到媒体库中?

时间:2012-08-04 作者:Paul

我正在使用我自己的上传。要将图像上载到的php文件:

$upload_dir = wp_upload_dir();
$targetDir = $upload_dir[\'path\'].\'/\';
它的工作原理与它应该的一样,但图像上载到uploads/2012/08/ 不出现在中Media Library. 是否有任何功能可以在那里和WP的数据库中“注册”它们?

2 个回复
最合适的回答,由SO网友:vmassuchetto 整理而成

这是因为您没有将它们注册为媒体类型。每次上传都是attachment 类型

首先,应该是这样的:

$file_name = \'Some Name\';
$file_path = \'/path/to/uploads/2012/08/04/newfile.jpg\';
$file_url = \'http://url/to/uploads/2012/08/04/newfile.jpg\';
$wp_filetype = wp_check_filetype($file, null);
$attachment = array(
    \'guid\'           => $file_url,
    \'post_mime_type\' => $wp_filetype[\'type\'],
    \'post_title\'     => $file_name,
    \'post_status\'    => \'inherit\',
    \'post_date\'      => date(\'Y-m-d H:i:s\')
);
$attachment_id = wp_insert_attachment($attachment, $file_path);
$attachment_data = wp_generate_attachment_metadata($attachment_id, $file_path);
wp_update_attachment_metadata($attachment_id, $attachment_data);
这将在媒体面板中创建一个条目,并将图像转换为主题中使用的所有大小。

您的一个好选择是在upload.php. 为此,您还需要包括WordPress所需的文件。否则,你必须告诉WordPress以某种方式运行它,也许通过$_REQUEST 查询或通过cron作业。

SO网友:nvartolomei

我想你应该开始挖掘media_handle_upload 作用它在法典中的描述很模糊,所以试着理解它code.

您可以使用此函数来处理甚至是上载,也可以获取其代码的某些部分以集成到您自己的代码中。

结束