WP_Widget_Media多媒体资料{}

实现库小部件的核心类。

说明

另请参见

方法

姓名说明
WP_Widget_Media库::__construct建造师。
WP_Widget_Media库::enqueue_admin_scripts加载媒体管理器所需的媒体文件和媒体小部件的脚本。
WP_Widget_Media库::获取实例模式获取小部件实例(项)属性的模式。
WP_Widget_Media多媒体资料::has_content小部件是否有要显示的内容。
WP_Widget_Media库::render_control_template_scripts呈现表单模板脚本。
WP_Widget_Media库::render_Media在前端渲染媒体。

来源

类WP_Widget_Media扩展了WP_Wigget_Media{/***建造师。**@自4.9.0起*/公共函数__construct(){父级::__construct('媒体库',__(“多媒体资料”),阵列('description'=>__('显示图像库。'),“mime_type”=>“图像”,));$this->l10n=array_merge(这->110亿美元,阵列(‘no_media_selected’=>__(‘未选择图像’),“add_media”=>_x(“添加图像”,“库小部件中按钮的标签;长度不应超过~13个字符”),“replace_media”=>“”,“edit_media”=>_x(“编辑库”,“库小部件中按钮的标签;长度不应超过~13个字符”),));}/***获取小部件实例(项)属性的模式。**@自4.9.0起**@请参阅WP_REST_Controller::get_item_schema()*@请参阅WP_REST_Controller::get_additional_fields()*@链接https://core.trac.wordpress.org/ticket/35574**属性的@return数组架构。*/公共函数get_instance_schema(){$schema=数组(“title”=>数组(“type”=>“string”,“默认”=>“”,“sanitize_callback”=>“sanitizer_text_field”,“description”=>__(“小部件标题”),“should_preview_update”=>false,),“ids”=>数组(“type”=>“array”,“items”=>数组(“type”=>“integer”,),“default”=>数组(),“sanitize_callback”=>“wp_parse_id_list”,),“columns”=>数组(“type”=>“integer”,'默认值'=>3,“最小值”=>1,“最大值”=>9,),'size'=>数组(“type”=>“string”,“enum”=>数组_合并(get_intermediate_image_sizes(),数组(“full”,“custom”)),“默认”=>“缩略图”,),“link_type”=>数组(“type”=>“string”,“enum”=>数组(“post”、“file”、“none”),“default”=>“post”,“media_prop”=>“link”,“should_preview_update”=>false,),“orderby_random”=>数组(“type”=>“boolean”,“default”=>false,“media_prop”=>“_orderbyRandom”,“should_preview_update”=>false,),);/**该过滤器记录在wp-includes/widgets/class-wp-widget-media.php中*/$schema=应用过滤器(“widget_{$this->id_base}_instance_schema”,$schema,$this);返回$schema;}/***在前端渲染媒体。**@自4.9.0起**@param array$instance Widget实例道具。*/公共函数render_media($instance){$instance=数组合并(wp_list_pluck($this->get_instance_schema(),'default'),$instance);$shortcode_atts=数组_合并($实例,阵列(“link”=>$instance['link_type'],));//@codeCoverageIgnoreStart(@codeCoverageIgnoreStart)if($instance['orderby_random']){$shortcode_atts['orderby']='rand';}//@codeCoverage忽略结束echo gallery_shortcode($shortcode_atts);}/***加载媒体管理器所需的媒体文件和媒体小部件的脚本。**@自4.9.0起*/公共函数enqueue_admin_scripts(){父级::enqueue_admin_scripts();$handle='media-gallery-widget';wp_enqueue_script($句柄);$exported_schema=array();foreach($this->get_instance_schema()作为$field=>$field_schema){$exported_schema[$field]=wp_array_slice_assoc($field_schema,数组('type','default','enum','minimum','format','media_prop','should_preview_update','items');}wp_add_inline脚本($句柄,冲刺('wp.mediaWidgets.modelConstructors[%s].prototype.schema=%s;',wp_json_encode($this->id_base),wp_json_encode($exported_schema)));wp_add_inline脚本($句柄,冲刺('wp.mediaWidgets.controlConstructors[%1$s].prototype.mime_type=%2$s;_.extend(wp.mediaWidgets.controlConstructors[%1$s].prototype.l10n,%3$s);',wp_json_encode($this->id_base),wp_json_encode($this->widget_options['time_type']),wp_json_encode($this->l10n)));}/***呈现表单模板脚本。**@自4.9.0起*/公共函数render_control_template_scripts(){父项::render_control_template_scripts();?><script type=“text/html”id=“tmpl-wp-media-widget-gallery-preview”><#var-ids=_.filter(数据id,函数id){return(data.attachments中的id);} );#><#if(ids.length){#><ul class=“gallery media-widget-gallery-preview”role=“list”><#_.each(id,函数(id,索引){#><#var attachment=data.attachments[id];#><#if(索引<6){#><li class=“gallery-item”><div class=“gallery-icon”><img alt=“{{attachment.alt}}”<#if(index==5&&data.ids.length>6){#>aria hidden=“true”<#}#><#if(附件.大小.缩略图){#>src=“{{attachment.sizes.thumbnail.url}}”width=“{attachement.size.thumbnail.width}})”height=“{附件.sizes.thumbnail.height}}“<#}其他{#>src=“{{attachment.url}}”<# } #><#if(!attachment.alt&&attachent.filename){#>aria-label=“<?php(电话)回波esc_attr(冲刺(/*转换器:%s:图像文件名*/__('当前图像没有可选文本。文件名为:%s'),“{{attachment.filename}}”));?>"<# } #>/><#if(索引====5&&data.ids.length>6){#><div class=“gallery-icon-placeholder”><p class=“gallery-icon-placeholder-text”aria-label=“<?php(电话)打印(/*翻译人员:%s:库小部件预览中其他不可见图像的数量*/__('添加到此库的其他图像:%s'),“{{data.ids.length-5}}”);?>“>+{{data.ids.length-5}}</p></div><# } #></div></li><# } #><# } ); #></ul><#}其他{#><div class=“attachment-media-view”><button type=“button”class=“占位符按钮添加媒体”><?php-echo eschtml($this->l10n[添加媒体]);?></按钮></div><# } #></script><?php(电话)}/***小部件是否有要显示的内容。**@自4.9.0起*@访问保护**@param array$instance Widget实例道具。*@return bool小部件是否有内容。*/受保护函数has_content($instance){if(!空($instance['ids']){$attachments=wp_parse_id_list($instance['ids']);//主要附件后缓存。_prime_post_caches($附件,false,false);foreach($附件作为$附件){if('attachment'!==get_post_type($attachment)){返回false;}}返回true;}返回false;}}

变更日志

版本说明
4.9.0介绍。

用户贡献的笔记

你必须登录在能够发表注释或反馈之前。