2

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

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

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

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

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

4

5 回答 5

2

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

我没有使用任何插件,而是编写了一个自定义函数来处理我的主题的文件上传。我使用了内置的 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”添加到编辑帖子页面上的表单标签,以允许文件上传。

我会发布我的代码,但它很长并且特定于我的项目。

于 2010-08-10T14:19:26.587 回答
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 获得

于 2011-06-24T13:15:35.950 回答
1

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

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

于 2010-04-02T10:40:09.737 回答
0

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

于 2010-08-02T18:51:00.067 回答
0

这个WordPress Meta Box PHP Helper 类可能会在您使用 WordPress Meta Boxes 时为您提供帮助。

于 2010-06-27T15:28:51.867 回答