WP_Customize_Upload_Control
云策文档标注
概述
WP_Customize_Upload_Control 是 WordPress 主题定制 API 中的一个类,用于在主题定制器中允许用户上传文件。它继承自 WP_Customize_Media_Control,适用于 WordPress 3.4 及以上版本。
关键要点
- 用于主题定制 API,支持文件上传功能
- 继承自 WP_Customize_Media_Control,控制类型为 'upload'
- 包含属性如 mime_type 和 button_labels,用于定义媒体类型和按钮标签
- 提供 to_json 方法,用于刷新传递给 JavaScript 的参数,处理附件数据
- 与 WP_Customize_Manager->add_control() 结合使用,添加定制控件
代码示例
$wp_customize->add_control(
new WP_Customize_Upload_Control(
$wp_customize,
'your_setting_id',
array(
'label' => __( 'Header Color', 'mytheme' ),
'section' => 'your_section_id',
'settings' => 'your_setting_id',
)
)
);
原文内容
Customize Upload Control Class.
Description
See also
Methods
| Name | Description |
|---|---|
| WP_Customize_Upload_Control::to_json | Refresh the parameters passed to the JavaScript via JSON. |
Source
class WP_Customize_Upload_Control extends WP_Customize_Media_Control {
/**
* Control type.
*
* @since 3.4.0
* @var string
*/
public $type = 'upload';
/**
* Media control mime type.
*
* @since 4.1.0
* @var string
*/
public $mime_type = '';
/**
* Button labels.
*
* @since 4.1.0
* @var array
*/
public $button_labels = array();
public $removed = ''; // Unused.
public $context; // Unused.
public $extensions = array(); // Unused.
/**
* Refresh the parameters passed to the JavaScript via JSON.
*
* @since 3.4.0
*
* @uses WP_Customize_Media_Control::to_json()
*/
public function to_json() {
parent::to_json();
$value = $this->value();
if ( $value ) {
// Get the attachment model for the existing file.
$attachment_id = attachment_url_to_postid( $value );
if ( $attachment_id ) {
$this->json['attachment'] = wp_prepare_attachment_for_js( $attachment_id );
}
}
}
}
Changelog
| Version | Description |
|---|---|
| 3.4.0 | Introduced. |
Skip to note 2 content
Chetan Satasiya
This class is used with the Theme Customization API to allow a user to upload a file on the Theme Customizer in WordPress 3.4 or newer.
$wp_customize->add_control( new WP_Customize_Upload_Control( $wp_customize, 'your_setting_id', array( 'label' => __( 'Header Color', 'mytheme' ), 'section' => 'your_section_id', 'settings' => 'your_setting_id', ) ) );