函数文档

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() ) . '