media_upload_type_form()
概述
media_upload_type_form() 函数用于输出指定媒体类型的旧版媒体上传表单。它处理表单的生成、参数传递和错误显示,适用于 WordPress 媒体上传界面。
关键要点
- 函数接受三个参数:$type(媒体类型,必需)、$errors(错误数组,可选)、$id(ID 或 WP_Error 对象,可选)。
- 内部调用 media_upload_header() 来输出上传页面的头部内容。
- 通过 admin_url() 构建表单的 action URL,并应用 media_upload_form_url 过滤器进行自定义。
- 根据用户设置动态添加 CSS 类,如 html-uploader,以支持不同的上传器类型。
- 输出包含隐藏字段(如 post_id)和错误消息的 HTML 表单结构。
代码示例
function media_upload_type_form( $type = 'file', $errors = null, $id = null ) {
media_upload_header();
$post_id = isset( $_REQUEST['post_id'] ) ? (int) $_REQUEST['post_id'] : 0;
$form_action_url = admin_url( "media-upload.php?type=$type&tab;=type&post;_id=$post_id" );
$form_action_url = apply_filters( 'media_upload_form_url', $form_action_url, $type );
$form_class = 'media-upload-form type-form validate';
if ( get_user_setting( 'uploader' ) ) {
$form_class .= ' html-uploader';
}
?>
" class="" id="-form">
" />
' . esc_html( $id->get_error_message() ) . '注意事项
此函数输出的是旧版媒体上传表单,可能与现代 WordPress 界面不兼容;使用时需确保参数正确传递,特别是 $type 和 $errors 的处理。
Outputs the legacy media upload form for a given media type.
Parameters
$typestringrequired$errorsarrayoptional-
Default:
null $idint|WP_Erroroptional-
Default:
null
Source
function media_upload_type_form( $type = 'file', $errors = null, $id = null ) {
media_upload_header();
$post_id = isset( $_REQUEST['post_id'] ) ? (int) $_REQUEST['post_id'] : 0;
$form_action_url = admin_url( "media-upload.php?type=$type&tab;=type&post;_id=$post_id" );
/**
* Filters the media upload form action URL.
*
* @since 2.6.0
*
* @param string $form_action_url The media upload form action URL.
* @param string $type The type of media. Default 'file'.
*/
$form_action_url = apply_filters( 'media_upload_form_url', $form_action_url, $type );
$form_class = 'media-upload-form type-form validate';
if ( get_user_setting( 'uploader' ) ) {
$form_class .= ' html-uploader';
}
?>
<form enctype="multipart/form-data" method="post" action="" class="" id="-form">
<input type="hidden" name="post_id" id="post_id" value="" />
jQuery(function($){
var preloaded = $(".media-item.preloaded");
if ( preloaded.length > 0 ) {
preloaded.each(function(){prepareMediaItem({id:this.id.replace(/[^0-9]/g, '')},'');});
}
updateMediaForm();
});
' . esc_html( $id->get_error_message() ) . '