【问题标题】:How can I attach a file using Wordpress custom fields / meta boxes?如何使用 Wordpress 自定义字段/元框附加文件?
【发布时间】:2011-02-03 13:14:15
【问题描述】:

我正在使用 Wordpress 的 add_meta_box() 函数将自定义元字段添加到“添加新帖子”页面 like this。我希望这些字段之一允许用户上传文件,以便可以将单个图像、pdf、音频文件或视频与帖子相关联。

我见过的最接近的例子是这个(链接已删除*)。不幸的是,它不适合我的需要,因为我希望我的文件由 Wordpress 的媒体上传器处理 - 所以它应该出现在之后的媒体库中,并且应该根据媒体设置生成缩略图。

我认为理想情况下有一种方法可以进入 Wordpress 现有的添加媒体对话框,只需将上传文件的 URL 输出到文本框中,但我不知道该怎么做。 This question 类似,但答案有点笨拙 - 我想为我的最终用户保持这个超级简单。

我怎样才能做到这一点?请不要推荐诸如 Flutter 或 Magic Fields 之类的插件 - 我已经尝试过这些,但它们不适合我的目的(我希望图像由 Wordpress 的媒体上传器处理)。我正在使用 Wordpress 3.0-alpha。

(*=链接因恶意软件报告而被删除;它在存档中,但风险自负)

【问题讨论】:

  • 你好@shipshape,我会对你的工作很感兴趣。如果可能的话,您至少可以发布链接到存档以下载您的代码。对于所有正在寻找有关此主题的答案的人来说,这将是一件好事。谢谢!

标签: wordpress upload custom-fields


【解决方案1】:

我最终自己解决了这个问题,并让它按照我的意愿工作,并认为我会为任何发现这个问题并且好奇的人发布更新。

我没有使用任何插件,但为我的主题编写了一个自定义函数来处理文件上传。我使用了内置的 Wordpress 函数,例如 save_custom_postdata()、wp_handle_upload()、wp_insert_attachment()、wp_generate_attachment_metadata() 和 wp_update_attachment_metadata()。

我还必须使用 add_action('admin_head'...) 添加一些 JavaScript,将“multipart/form-data”添加到编辑帖子页面上的表单标签,以允许文件上传。

我会发布我的代码,但它很长并且是针对我的项目的。

【讨论】:

  • 很遗憾,您不会发布至少一些更相关的代码。考虑通过抽出半个小时的时间来摘录一些解决方案来回馈社区。​​span>
  • 完全同意@Tom Auger,很高兴看到代码,即使它是具体的,以了解如何处理元框中的文件。
【解决方案2】:

您无需使用 JavaScript 来编辑表单。这可以使用 post_edit_form_tag 函数来实现,如下所示:

add_action( 'post_edit_form_tag' , 'post_edit_form_tag' );

function post_edit_form_tag( ) {
    echo ' enctype="multipart/form-data"';
}

更多详情(包括示例)请访问http://codex.wordpress.org/Plugin_API/Filter_Reference/post_edit_form_tag

【讨论】:

    【解决方案3】:

    看看Image Widget - 一个制作精良的小部件,可以做你想做的事,但作为一个小部件。也许您可以将其转换为在您的添加新帖子页面上工作。

    您可以尝试的另一个插件是Pods CMS。可能有点矫枉过正,但是当您使用此文件上传文件时,它们会自动添加到媒体库中。

    【讨论】:

      【解决方案4】:

      这个WordPress Meta Box PHP Helper class 可能会对您使用 WordPress 元框有所帮助。

      【讨论】:

        【解决方案5】:

        我想这就是你要找的东西:http://wordpress.org/extend/plugins/nkmimagefield/ 显然它不支持自定义帖子类型,但应该做一些黑客攻击。它已经完成了与媒体编辑器交互的艰苦工作。

        【讨论】:

          猜你喜欢
          • 2014-01-23
          • 1970-01-01
          • 2012-02-19
          • 2014-08-13
          • 1970-01-01
          • 2013-10-02
          • 1970-01-01
          • 2017-03-20
          • 2015-12-20
          相关资源
          最近更新 更多