从自定义媒体上载程序中删除附件字段

时间:2012-08-02 作者:Ryan Palmer

我有一个自定义的媒体上载程序设置,并试图仅从此上载程序中删除附件字段,同时保留默认WP post/page媒体上载程序的字段不变。除了让字段被排除在外,其他一切都很正常。

下面是一些有关其工作原理的代码:

首先,用这个js打开uploader thickboxtb_show(box_title, \'media-upload.php?post_id=0&custom_uploader=1&TB_iframe=1\' );

接下来,将custom\\u uploader值添加到表单操作URL

function upload_request_hook( $form_action_url, $type ) {
    $form_action_url = $form_action_url . \'&custom_uploader=1\';

    return $form_action_url;
}
我的自定义上载程序的iframe url现在如下所示:media-upload.php?type=image&tab=type&post_id=0&custom_uploader=1 形式动作也是一样的。所以那里一切都很好。

出于测试目的,我正在删除所有附件字段

function image_attachment_settings( $form_fields, $post ) {
    unset( $form_fields );

    return $form_fields;
}
然后添加筛选器和操作:

function image_upload_options() {
    add_filter( \'media_upload_form_url\', \'upload_request_hook\', 10, 2 );
}

if ( isset( $_GET[\'custom_uploader\'] ) || isset( $_POST[\'custom_uploader\'] ) ) {
    add_action( \'admin_init\', \'image_upload_options\' );
}
所以我想用if ( isset( $_GET[\'custom_uploader\'] ) || isset( $_POST[\'custom_uploader\'] ) ) 仅基于表单操作为我的自定义上载程序应用筛选器/操作。

但这里是第一个奇数位。如果我使用HTML上传方法,它会按照我的预期工作。如果我使用Flash uploader,则不会删除任何字段。

第二个奇数位。。。如果我删除If语句,它基本上删除了每个上传类型(自定义和默认WP)的附件字段,那么它可以与flash和HTML上传程序一起使用。但这违背了目的。

这里的问题是;我可以在这里设置什么来排除自定义上载程序的附件字段,它与Flash和HTML上载程序一起工作?是否要应用任何类型的IF语句?我还可以设置或锁定其他挂钩吗?

感谢您在这里提供的任何帮助。谢谢

1 个回复
最合适的回答,由SO网友:Craig Pearson 整理而成

我知道这不是一个深入的答案(我正在工作,不能真正测试任何代码),但是,也许你需要考虑直接为你的上传创建挂钩,这应该意味着flash上传程序将按照你的预期运行。

flash loader的挂钩是:pre-flash upload ui

您可以在此处看到此挂钩的显示位置:

http://adambrown.info/p/wp_hooks/hook/pre-flash-upload-ui

需要查看的其他杆/钩有:

post html upload ui(html上传后ui)和$GET(在您的条件之一下)-我认为$请求是首选。

很抱歉回答不明确,但检查这些挂钩可能会帮助您找到问题的解决方案-希望我今晚晚些时候能够扩展和测试,并提供更多帮助

克雷格

结束