File "class-wp-widget-rss.php"
Full path: /home/kosmetik/public_html/wp-includes/widgets/class-wp-widget-rss.php
File
size: 3.27 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
class WP_Widget_RSS extends WP_Widget
{
public function __construct()
{
$widget_ops = array('description' => __('Entries from any RSS or Atom feed.'), 'customize_selective_refresh' => true);
$control_ops = array('width' => 400, 'height' => 200);
parent::__construct('rss', __('RSS'), $widget_ops, $control_ops);
}
public function widget($args, $instance)
{
if (isset($instance['error']) && $instance['error']) {
return;
}
$url = !empty($instance['url']) ? $instance['url'] : '';
while (stristr($url, 'http') !== $url) {
$url = substr($url, 1);
}
if (empty($url)) {
return;
}
if (in_array(untrailingslashit($url), array(site_url(), home_url()), true)) {
return;
}
$rss = fetch_feed($url);
$title = $instance['title'];
$desc = '';
$link = '';
if (!is_wp_error($rss)) {
$desc = esc_attr(strip_tags(html_entity_decode($rss->get_description(), ENT_QUOTES, get_option('blog_charset'))));
if (empty($title)) {
$title = strip_tags($rss->get_title());
}
$link = strip_tags($rss->get_permalink());
while (stristr($link, 'http') !== $link) {
$link = substr($link, 1);
}
}
if (empty($title)) {
$title = !empty($desc) ? $desc : __('Unknown Feed');
}
$title = apply_filters('widget_title', $title, $instance, $this->id_base);
$url = strip_tags($url);
$icon = includes_url('images/rss.png');
if ($title) {
$title = '<a class="rsswidget" href="' . esc_url($url) . '"><img class="rss-widget-icon" style="border:0" width="14" height="14" src="' . esc_url($icon) . '" alt="RSS" /></a> <a class="rsswidget" href="' . esc_url($link) . '">' . esc_html($title) . '</a>';
}
echo $args['before_widget'];
if ($title) {
echo $args['before_title'] . $title . $args['after_title'];
}
$format = current_theme_supports('html5', 'navigation-widgets') ? 'html5' : 'xhtml';
$format = apply_filters('navigation_widgets_format', $format);
if ('html5' === $format) {
$title = trim(strip_tags($title));
$aria_label = $title ? $title : __('RSS Feed');
echo '<nav role="navigation" aria-label="' . esc_attr($aria_label) . '">';
}
wp_widget_rss_output($rss, $instance);
if ('html5' === $format) {
echo '</nav>';
}
echo $args['after_widget'];
if (!is_wp_error($rss)) {
$rss->__destruct();
}
unset($rss);
}
public function update($new_instance, $old_instance)
{
$testurl = isset($new_instance['url']) && (!isset($old_instance['url']) || $new_instance['url'] !== $old_instance['url']);
return wp_widget_rss_process($new_instance, $testurl);
}
public function form($instance)
{
if (empty($instance)) {
$instance = array('title' => '', 'url' => '', 'items' => 10, 'error' => false, 'show_summary' => 0, 'show_author' => 0, 'show_date' => 0);
}
$instance['number'] = $this->number;
wp_widget_rss_form($instance);
}
}