根据时间参数用wp_ins_post()和wp_Handle_Upload组织上传的媒体

时间:2012-12-26 作者:Dima

我正在用wp\\u insert\\u post()追溯性地创建一篇文章,并在上面附加一幅特色图片。我需要将图像放入与帖子发布日期相对应的文件夹中。

我在wp\\u handle\\u upload函数中使用了时间参数,它应该根据参数值将文件移动到目录中(请参见代码中的-$upload\\u date-static value for now)。但是现在,图像移动到当前的年/月文件夹,忽略$upload\\u date(例如:应该去2007/11, 转到2012/12).

    $output_dir = $uploads[\'path\'];
    new_filepath = $output_dir.\'/\'.$file;


// INSERT POST AND GET POST ID  
    $my_post_id = wp_insert_post($my_post);


// Copy image from my folder to WP Uploads
    rename($filename,$new_filepath);


// required for wp_handle_upload() to upload the file
    $upload_overrides = array( \'test_form\' => FALSE );

    $upload_date = \'2007/11\'; // Using this date for testing purposes

    $movefile = wp_handle_upload( $new_filepath, $upload_overrides, $upload_date ); 

    $wp_filetype = wp_check_filetype(basename($new_filepath), null );
    $attachment = array(
         \'post_mime_type\' => $wp_filetype[\'type\'],
         \'post_title\' => $post_title,
         \'post_content\' => $post_content,
         \'post_status\' => \'inherit\'
    );
    $attach_id = wp_insert_attachment( $attachment, $new_filepath, $my_post_id );
    $attach_data = wp_generate_attachment_metadata( $attach_id, $new_filepath );
    wp_update_attachment_metadata( $attach_id, $attach_data );


// ADD FEATURED IMAGE TO THE POST
    add_post_meta($my_post_id, \'_thumbnail_id\', $attach_id);

1 个回复
SO网友:Dima

复制文件之前(rename()) 到我设置时间参数的最终目的地wp_upload_dir() (而不是试图wp_handle_upload() 它现在将文件传输到适当的目录。

$uploads = wp_upload_dir( $upload_date );
$output_dir = $uploads[ \'path\' ];
rename( $filename, $new_filepath );

结束

相关推荐

以编程方式通过URL获取图像并保存在Uploads文件夹中

我参与了从另一个CMS到WordPress的大规模迁移。我们有一个数据库的副本,并且已经解决了如何提取内容并使用wpdb 班然而,有几千张图片,我们想自动拉过来,生成各种大小的图片,然后贴到帖子上,以节省大约一周的工作!有没有办法通过URL从远程站点获取图像并将其保存在我的wp uploads文件夹中?我想这是wp_http 但我对此并不熟悉。一旦我得到图像并保存它,我就可以使用wp_generate_attachment_metadata 创建各种尺寸和wp_insert_attachment 把它贴在