WP_小工具_RSS{}

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

描述

另请参阅

方法

姓名描述
WP_Widget_RSS::__construct设置新的RSS小部件实例。
WP_Widget_RSS::表单输出RSS小部件的设置表单。
WP_Widget_RSS::更新处理当前RSS小部件实例的更新设置。
WP_Widget_RSS::小部件输出当前RSS小部件实例的内容。

来源

类WP_Widget_RSS扩展了WP_Widlet{/***设置新的RSS小部件实例。**@自2.8.0起*/公共函数__construct(){$widget_ops=数组(“description”=>__(“来自任何RSS或Atom提要的条目。”),“customize_selective_refresh”=>true,“show_instance_in_rest”=>true,);$control_ops=数组(“宽度”=>400,“高度”=>200,);父级::__construct('rss',__('rss'),$widget_ops,$control_ops);}/***输出当前RSS小部件实例的内容。**@自2.8.0起**@param array$args显示参数,包括“before_title”、“after_title”、,*'before_widget'和'after_widget]。*当前RSS小部件实例的@param array$instance设置。*/公共功能小部件($args,$instance){if(isset($instance['error'])&&$instance['error']){回报;}$url=!空($instance['url'])$实例[“url”]:“”;while(!empty($url)&&stristr($url,'http')!==$网址){$url=子项($url,1);}if(空($url)){回报;}//自URL销毁序列。if(in_array(untrailingslashit($url),数组(site_url(),home_url)),true)){回报;}$rss=fetch_feed($url);$title=$instance[“标题”];$desc=“”;$link=“”;if(!iswp_error($rss)){$desc=esc_attr(strip_tags(html_entity_decode($rss->get_description(),ENT_QUOTES,get_option('blog_charset')));if(空($title)){$title=条带标记($rss->get_title());}$link=strip_tags($rss->get_permalink());while(!empty($link)&&stristr($link,'http')!==$链接){$link=子项($link,1);}}if(空($title)){$title=!空($desc)$desc:__(“未知馈送”);}/**该过滤器记录在wp-includes/widgets/class-wp-widget-pages.php中*/$title=应用过滤器('widget_title',$title,$instance,$this->id_base);if($title){$feed_link=“”;$feed_url=条带标记($url);$feed_icon=includes_url('images/rss.png');$feed_link=冲刺('<a class=“rsswidget-rss-widget-feed”href=“%1$s”><img class=“rss-widget-icon”style=“border:0”width=“14”height=“14“src=”%2$s“alt=”%3$s“%4$s/></a>',esc_url($feed_url),esc_url($feed_icon),esc_attr_(“RSS”),(wp_lazy_loading_enabled('img','rss_widget_feed_icon')?'loading=“lazy”':''));/***过滤经典RSS小部件的提要图标链接。**主题可以使用“add_filter('rss_widget_feed_link','__return_empty_string');”删除图标链接。**@自5.9.0起**@param string|false$feed_link HTML链接到RSS提要。*@param array$instance当前小部件的设置数组。*/$feed_link=应用过滤器('rss_widget_feed_link',$feed_nink,$instance);$title=$feed_link。”<a class=“rsswidget rss小部件title”href=“'.esc_url($link).'”>'。esc_html($title)。'</a> ';}echo$args[“小部件之前”];if($title){echo$args[“标题之前”]$标题$args['after_title'];}$format=current_theme_supports('html5','navigation-widgets')?'html5':'xhtml';/**该过滤器记录在wp-includes/widgets/class-wp-nav-menu-widget.php中*/$format=apply_filters('navigation_widgets_format',$format);if('html5'===$format){//标题可能会被过滤:去掉HTML并确保aria-label永远不为空。$title=修剪(strip_tags($title));$aria_label=$title$标题:__(“RSS源”);echo'<nav aria-label=“'.esc_attr($aria_label).'”>';}wp_widget_rss_output($rss,$instance);if('html5'===$format){echo“</nav>”;}echo$args['after_widget'];if(!iswp_error($rss)){$rss->__destrust();}取消设置($rss);}/***处理当前RSS小部件实例的更新设置。**@自2.8.0起**@param array$new_instance用户通过输入此实例的新设置*WP_Widget::form()。*@param array$old_instance此实例的旧设置。*@return array更新了要保存的设置。*/公共函数更新($new_instance,$old_instance){$testurl=(isset($new_instance['url'])&&(!isset($old_instance['url'])||($new_instance['url']!==$old_instance['url']));返回wp_widget_rss_process($new_instance,$testurl);}/***输出RSS小部件的设置表单。**@自2.8.0起**@param array$instance当前设置。*/公共函数窗体($instance){if(空($instance)){$instance=数组(“标题”=>“”,“url”=>“”,“项目”=>10,“error”=>错误,“show_summary”=>0,“show_author”=>0,“show_date”=>0,);}$instance['number']=$this->编号;wp_widget_rss_form($instance);}}

变更日志

版本描述
2.8.0介绍。

用户贡献的笔记

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