【问题标题】:Attach Media to Post without Autosaving First在不先自动保存的情况下将媒体附加到帖子
【发布时间】:2012-07-20 05:37:30
【问题描述】:

对于 WordPress,我使用 wp_editor 来允许用户使用编辑器和媒体上传器。我想避免创建帖子的自动保存,但问题是在保存帖子之前附件没有 post_id 可附加。

我想知道是否有办法上传媒体,然后在保存后将其附加到新帖子中。

我可以在保存帖子时将临时 ID 传递给附件以识别它吗?或者在上传后获取附件 ID?

想法赞赏!

【问题讨论】:

    标签: wordpress media autosave


    【解决方案1】:

    经过一番折腾,我得出的结论是,post ID 是必须的。

    我最终做了 WordPress 帖子编辑屏幕所做的事情。一旦用户输入了帖子标题,我就使用了一点 jQuery 和 Ajax 来动态创建自动保存。

    自动保存完成后,它会将媒体上传 iframe href 替换为包含自动保存帖子 ID 的内容。

    因此,仍有可能会有一些被遗弃的帖子草稿,但至少需要通过输入帖子标题来做出一些承诺。

    【讨论】:

      【解决方案2】:

      您可以创建未附加的媒体,然后将其附加到帖子中:

      function file_into_database( $filetype, $filename, $target )
      {
          $title = $this->clean_file_info[ 'basename' ];
      
          $attachment = array
          (
                'post_mime_type' => $filetype
              , 'post_title'     => $title
              , 'post_content'   => ''
              , 'post_status'    => 'inherit'
              , 'guid'           => $target[ 'uri' ]
              , 'post_author'    => $this->author
          );
      
      
          $attach_id = wp_insert_attachment( $attachment, $target[ 'path' ] );
      
      
          $attach_data = wp_generate_attachment_metadata( $attach_id, $target[ 'path' ] );
          wp_update_attachment_metadata( $attach_id,  $attach_data );
      
          return $attach_id;
      }
      

      稍后附上:

      wp_update_post
      (
          array
          (
                 'ID'          => $attachment[ 'id' ]
              ,  'post_parent' => $id_new_post
          )
      )
      

      我只是在一个插件中发现了这个,没有找到它的文档,所以我不知道是否有任何副作用,但我没有遇到任何副作用。另请注意,如果帖子最终没有发布,您将不会得到挥之不去的自动保存,但您可能会得到挥之不去的附件,因此您可能必须安排在将来的某个时间删除它们,并在何时以及如果帖子已保存。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-10-05
        • 1970-01-01
        • 1970-01-01
        • 2018-05-09
        • 1970-01-01
        • 2013-05-28
        • 2020-08-04
        相关资源
        最近更新 更多