如何手动上传wordpress post thumbnail [wp_database]

时间:2013-11-28 12:14:19

标签: php wordpress symfony file-upload

我正在尝试在wordpress之外创建一个外部php脚本来管理自定义后台中的帖子(使用Symfony2)。

到目前为止一切正常。我只是想知道如何通过上传图片并将其信息直接注册到Wordpress数据库来手动设置帖子缩略图,意思是:

  • 使用哪个上传目录
  • 哪种帖子类型
  • 发布状态
  • postMime的主要内容
  • Metas添加
  • ...等

一般情况下,我只是想知道如何在不使用Wordpress功能的情况下手动注册帖子缩略图。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

为此,您必须手动创建postmeta _wp_attachment_metadata ,这是一个序列化数组。

  1. 首先你得到你的缩略图:
  2. $ file = $ form-> getData(); $ thumb = $ file ['logo'];

    1. 您将获得缩略图特征(宽度,高度......):
    2. 列表($ width,$ height,$ type,$ attr)= getimagesize($ thumb);

      1. 使用thumbcharactéristics构建数组:

        $ meta_data_value = array();  $ meta_data_value ['width'] = $ width;  $ meta_data_value ['height'] = $ height;  $ meta_data_value ['file'] = $ slug。'。'。$ ext;

        $ sizes = array();  $ sizes ['缩略图'] =数组('file'=> $ slug。'。'。$ ext,'width'=> 125,'height'=> 150,'mime-type'=> $ MIME);  $ sizes ['medium'] = array('file'=> $ slug。'。'。$ ext,'width'=> 250,'height'=> 300,'mime-type'=> $ MIME);  $ meta_data_value ['sizes'] = $ sizes;  $ meta_data_value ['image_meta'] = array('aperture'=> 0,'credit'=>'','camera'=>'','caption'=>'','created_timestamp'=&gt ; 0,'copyright'=>'','focal_length'=> 0,'iso'=> 0,'shutter_speed'=> 0,'title'=>'');  $ meta_data_value = serialize($ meta_data_value);

        1. 最后用Doctrine添加postmeta:

          $ meta_data = new PostMeta(); $ meta_data-> setkey的( '_ wp_attachment_metadata'); $ meta_data->的setValue($ meta_data_value); $ meta_data-> setPost($ logo); //假设您创建了帖子$徽标 $ EM->坚持($ meta_data); $ EM->冲洗();