是否可以使用脚本为自定义帖子类型添加帖子和图像(自动调整大小)?

时间:2012-10-02 作者:Jeremy

我有一个特殊的需要导入到一个自定义的职位类型与特色图像许多职位。问题是,我需要这是一个脚本,因为它是从另一个收集所有数据的系统运行的。我目前有自定义帖子类型设置,并且我有要在自定义帖子类型中显示的数据,使用自定义模板来拉取和显示数据(列表和配置文件页面)。

我想能够手动添加帖子(我不认为这很困难),并使用WP内置系统添加特色缩略图。我似乎找不到有关如何直接调用图像脚本并传入图像以便其处理和返回插入所需数据的任何数据。

这可能吗?或者我需要手动完成这一切,并在每篇文章中添加自定义字段,以获得页面所需的两个缩略图吗?如果可能的话,我宁愿将这些数据输入数据库,而不使用自定义字段。

谢谢你能照到这个。

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

看来这是可能的,也不太难。下面是我使用的代码片段。我还添加了一些检查,以防止媒体管理器中出现重复的图像,但该代码段是我唯一需要的(我只是对每个附件使用了一个元键,并在添加新附件之前检查了重复键)

我希望这对一些人有所帮助。

我正在使用文件的URL。很容易将其更改为使用区域设置文件。

Save Image to Media Manager

/**
 * Saves image to the media manager
 * @param int $post_id
 * @param string $file
 * @param string $desc
 * @return int false on error 
 */
function addFileToMediaManager($post_id, $file, $desc = \'\') {
    // Download file to temp location
    $tmp = download_url($file);

    // Set variables for storage
    // fix file filename for query strings
    $file_array = array();
    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
    $attached_id = media_handle_sideload($file_array, $post_id, $desc);
    // If error storing permanently, unlink
    if (is_wp_error($attached_id)) {
        @unlink($file_array[\'tmp_name\']);
        wp_delete_post($post_id, true);
        return false;
    }

    return $attached_id;
}
一旦您拥有附件ID和帖子ID,只需致电:

set_post_thumbnail($post_id, $attached_id);

SO网友:Milo

使用wp_handle_upload 要上载文件,wp_insert_attachment 将其附在立柱上,以及add post meta 到钥匙下的岗位_thumbnail_id 使该附件成为特色图像。

结束

相关推荐

Upload images with comment

编辑:我终于得到了正确的答案;请在这篇帖子下面为所有感兴趣的人查看我自己的答案。经过几天的搜寻和反复尝试,我真的被卡住了。我有一个客户,他通过使用评论表在自己的网站上收集客户体验;所有评论都显示为客户评论。到目前为止还不错。但由于这家公司在旅游方面做得很多,他需要让他的客户上传多达五张图片,并附上评论。所以我需要做的是找到一种方法,让客户上传媒体,并填写评论表。我知道这有点冒险,因为可能会上传损坏的图像等等。但我仍然希望实现这一目标。尝试了很多东西,但我一次又一次陷入困境的地方是文件上传处理,对于一个未登