我正在使用Wordpress的add_meta_box()功能将自定义元字段添加到“添加新帖子”页面like this。我希望其中一个字段允许用户上传文件,以便可以将单个图像,pdf,音频文件或视频与帖子相关联。
我见过的最接近的例子是这一个(链接被删除*)。不幸的是,它不适合我的需要,因为我希望我的文件由Wordpress的Media Uploader处理 - 所以它应该在之后出现在媒体库中,并且应该根据媒体设置生成缩略图。
我认为理想情况下会有一种方法可以使用Wordpress现有的“添加媒体”对话框,只需将上传文件的URL输出到文本框中,但我不知道该怎么做。 This question是类似的,但答案有点笨重 - 我希望这对我的最终用户来说非常简单。
我怎样才能做到这一点?请不要推荐Flutter或Magic Fields等插件 - 我试过这些插件并且它们不适合我的目的(我希望图像由Wordpress的Media Uploader处理)。我使用的是Wordpress 3.0-alpha。
(* =由于恶意软件报告而删除了链接;它位于存档中,但风险自负)
答案 0 :(得分: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”添加到Edit Post页面上的form标签,以允许文件上传。
我会发布我的代码,但它对我的项目非常长且具体。
答案 1 :(得分: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提供了更多详细信息(包括示例)。
答案 2 :(得分:1)
看看Image Widget - 一个精心制作的小部件,可以做你想要的,但作为一个小部件。也许您可以将其转换为添加新帖子页面。
您可以尝试的另一个插件是Pods CMS。可能有点矫枉过正,但是当您使用此文件进行文件上载时,它们会自动添加到媒体库中。
答案 3 :(得分:0)
使用WordPress Meta Box时,此WordPress Meta Box PHP Helper class可能对您有帮助。
答案 4 :(得分:0)
我认为这正是您所寻找的:http://wordpress.org/extend/plugins/nkmimagefield/ 显然它不支持自定义帖子类型,但应该做一点点黑客攻击。它已经完成了与媒体编辑器接口的艰苦工作。