WordPress上传自定义帖子Meta的缩略图

时间:2011-03-08 03:24:58

标签: php wordpress

我已在每个帖子上为Thumbnail设置了自定义帖子元字段。正确调用此函数,一切都可以运行到最后一行update_post_meta

有趣的是,我可以回显$imageURL并获取正确的地址,文件上传很好。我甚至可以update_post_meta使用任何其他值,无论是字符串还是函数中的其他变量,但只要我尝试使用$imageURL$uploaded_file['url'],它就会将post meta设置为一个空白的字符串。

我在使用早于3.1的WordPress开发的项目中使用了此片段,但这个是3.1。这可能与它有关吗?我有点怀疑它,因为这似乎是那些超级奇怪的错误之一。

function tcr_save_thumbnail($post_id, $post) {
    if ( !wp_verify_nonce( $_POST['eventmeta_noncename'], plugin_basename(__FILE__) )) {
        return $post->ID;
    }

    if ( !current_user_can( 'edit_post', $post->ID ))
        return $post->ID;

    if(!empty($_FILES['tcr_thumbnail_meta']['name'])) { //New upload
        require_once( ABSPATH . 'wp-admin/includes/file.php' );
        $override['action'] = 'editpost';
        $uploaded_file = wp_handle_upload($_FILES['tcr_thumbnail_meta'], $override);

        $post_id = $post->ID;
        $attachment = array(
            'post_title' => $_FILES['tcr_thumbnail_meta']['name'],
            'post_content' => '',
            'post_type' => 'attachment',
            'post_parent' => $post_id,
            'post_mime_type' => $_FILES['tcr_thumbnail_meta']['type'],
            'guid' => $uploaded_file['url']
        );
        // Save the data
        $id = wp_insert_attachment( $attachment,$_FILES['tcr_thumbnail_meta'][ 'file' ], $post_id );
        wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $_FILES['tcr_thumbnail_meta']['file'] ) );
        $imageURL = $uploaded_file['url'];
        update_post_meta($post->ID, "tcr_thumbnail_meta", $imageURL);
    }
}

1 个答案:

答案 0 :(得分:0)

这是一个已在插件中实现的功能。试试吧http://wordpress.org/extend/plugins/taxonomy-images/它太完整了!