类文档

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

More Information

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.

or more information on available Theme Customizer controls, see the codex entry for WP_Customize_Manager->add_control()

To force a specific image size see: WP_Customize_Cropped_Image_Control

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.

User Contributed Notes

  1. Skip to note 2 content

    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',
    	) ) 
    );