WP_小部件_块{}

用于实现Block小部件的核心类。

描述

另请参阅

方法

姓名描述
WP_桥接块::__construct设置新的Block小部件实例。
WP_Widget_Block::表单输出块小部件设置窗体。
WP_Widget_Block::获取动态类名称计算要在块小部件的容器HTML中使用的类名。
WP_Widget_Block::设置_is_wide_Widget_in_customizer确保没有块小部件被认为是宽的。
WP_Widget_Block::更新处理当前Block小部件实例的更新设置。
WP_Widget_Block::小部件输出当前Block小部件实例的内容。

来源

类WP_Widget_Block扩展了WP_Widlet{/***默认实例。**@自5.8.0起*@var数组*/受保护的$default_instance=数组('内容'=>'',);/***设置新的Block小部件实例。**@自5.8.0起*/公共函数__construct(){$widget_ops=数组(“classname”=>“widget_block”,“description”=>__(“包含块的小部件”),“customize_selective_refresh”=>true,“show_instance_in_rest”=>true,);$control_ops=数组(“宽度”=>400,“高度”=>350,);父项::__construct('block',__('block'),$widget_ops,$control_ops);add_filter(“is_wide_widget_in_customizer”,数组($this,“set_is_wide _widget-in_customezer”),10,2);}/***输出当前Block小部件实例的内容。**@自5.8.0起**@param array$args显示参数,包括“before_title”、“after_title”、,*'before_widget'和'after_widget]。*当前Block小部件实例的@param array$instance设置。*/公共功能小部件($args,$instance){$instance=wp_parse_args($instance,$this->default_instance);回声str_replace('小部件块',$this->get_dynamic_classname($instance['content']),$args[“小部件之前”]);/***在输出之前过滤Block小部件的内容。**@自5.8.0起**@param string$content小部件内容。*@param array$instance当前小部件的设置数组。*@param WP_Widget_Block$Widget当前块Widget实例。*/回波应用过滤器('widget_block_content',$instance[“内容”],$实例,$这个);echo$args['after_widget'];}/***计算要在块小部件的容器HTML中使用的类名。**通常,它被设置为`$this->widget_options['classname']`*dynamic_sidebar()。然而,在这种情况下,我们希望设置类名*动态地取决于这个块小部件包含的块。**如果块小部件包含具有等效遗留小部件的块,*我们显示遗留小部件的类名。这有助于主题*向后兼容性。**@自5.8.0起**@param string$content当前块小部件的HTML内容。*@return string要在块小部件的容器HTML中使用的类名。*/私有函数get_dynamic_classname($content){$blocks=解析块($content);$block_name=isset($blocks[0])$块[0]['blockName']:空;交换机($block_name){案例“核心/段落”:$classname='widget_block widget_text';断裂;案例“核心/日历”:$classname='widget_block widget_calendar';断裂;案例“核心/搜索”:$classname='widget_block widget_search';断裂;案例“core/html”:$classname=“widget_block widget_custom_html”;断裂;案例“核心/档案”:$classname='widget_block widget_archive';断裂;案例“核心/最新帖子”:$classname='widget_block widget_recent_entries';断裂;案例“核心/最新评论”:$classname='widget_block widget_recent_comments';断裂;案例“核心/标签云”:$classname='widget_block widget_tag_cloud';断裂;案例“核心/类别”:$classname='widget_block widget_categories';断裂;案例“核心/音频”:$classname='widget_block widget_media_audio';断裂;案例“核心/视频”:$classname='widget_block widget_media_video';断裂;案例“核心/图像”:$classname='widget_block widget_media_image';断裂;案例“核心/画廊”:$classname='widget_block widget_media_gallery';断裂;案例“core/rss”:$classname='widget_block widget_rss';断裂;默认值:$classname='widget_block';}/***块小部件的容器HTML中使用的类名。**这可以根据块小部件包含的块的名称进行设置。**@自5.8.0起**@param string$classname要在块小部件的容器HTML中使用的类名,*例如“widget_block widget_text”。*@param string$block_name块小部件包含的块的名称,*例如“核心/段落”。*/return apply_filters('widget_block_dynamic_classname',$classname,$block_name);}/***处理当前Block小部件实例的更新设置。**@自5.8.0起*@param array$new_instance用户通过输入此实例的新设置*WP_Widget::form()。*@param array$old_instance此实例的旧设置。*@return array Settings保存,bool false取消保存。*/公共函数更新($new_instance,$old_instance){$instance=数组合并($this->default_instance,$old_instance);if(current_user_can('unfiltered_html')){$instance['content']=$new_instance['内容'];}其他{$instance['content']=wp_kses_post($new_instance['内容']);}return$instance;}/***输出块小部件设置窗体。**@自5.8.0起**@请参阅WP_Widget_Custom_HTML::render_control_template_scripts()**@param array$instance当前实例。*/公共函数窗体($instance){$instance=wp_parse_args((数组)$instance,$this->default_instance);?><p><label for=“<?php echo$this->get_field_id('content');?>”><?php(电话)/*转换器:块的HTML代码,而不是阻止HTML的选项*/_e('阻止HTML:');?></label><textarea id=“<?php echo$this->get_field_id('content');?>”name=“<?php echo$this->get_field_name('content');?>”rows=“6”cols=“50”class=“widefat code”><?php echo esc_textarea($instance['content']);?></文本区域></p><?php(电话)}/***确保没有块小部件被认为是宽的。**@自5.8.0起**@param bool$is_wide小部件是否被视为宽。*@param string$widget_id小工具id。*@return bool更新了`is_wide`值。*/公共函数set_is_wide_widget_in_customizer($is_wide,$widget_id){if(str_starts_with($widgetid,'block-')){返回false;}返回$is_wide;}}

变更日志

版本描述
5.8.0介绍。

用户贡献的笔记

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