WordPress.org

Make WordPress Core

Ticket #5770: default-widgets.php_11391-5770.diff

File default-widgets.php_11391-5770.diff, 9.4 KB (added by AndrewFrazier, 5 years ago)

Updated patch

  • wp-includes/default-widgets.php

     
    555555                else if ( $number > 15 ) 
    556556                        $number = 15; 
    557557 
    558                 $r = new WP_Query(array('showposts' => $number, 'nopaging' => 0, 'post_status' => 'publish', 'caller_get_posts' => 1)); 
     558                $r = new WP_Query(array('showposts' => $number, 'what_to_show' => 'posts', 'nopaging' => 0, 'post_status' => 'publish', 'caller_get_posts' => 1)); 
    559559                if ($r->have_posts()) : 
    560560?> 
    561561                <?php echo $before_widget; ?> 
    562562                <?php if ( $title ) echo $before_title . $title . $after_title; ?> 
    563563                <ul> 
    564564                <?php  while ($r->have_posts()) : $r->the_post(); ?> 
    565                 <li><a href="<?php the_permalink() ?>" title="<?php echo esc_attr(get_the_title() ? get_the_title() : get_the_ID()); ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?> </a></li> 
     565                <li><a href="<?php the_permalink() ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?> </a></li> 
    566566                <?php endwhile; ?> 
    567567                </ul> 
    568568                <?php echo $after_widget; ?> 
     
    659659                        <?php if ( $title ) echo $before_title . $title . $after_title; ?> 
    660660                        <ul id="recentcomments"><?php 
    661661                        if ( $comments ) : foreach ( (array) $comments as $comment) : 
    662                         echo  '<li class="recentcomments">' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x('%1$s on %2$s', 'widgets'), get_comment_author_link(), '<a href="' . esc_url( get_comment_link($comment->comment_ID) ) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>'; 
     662                        echo  '<li class="recentcomments">' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x('%1$s on %2$s', 'widgets'), get_comment_author_link(), '<a href="' . clean_url( get_comment_link($comment->comment_ID) ) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>'; 
    663663                        endforeach; endif;?></ul> 
    664664                <?php echo $after_widget; ?> 
    665665<?php 
     
    730730                        $desc = esc_attr(strip_tags(@html_entity_decode($rss->get_description(), ENT_QUOTES, get_option('blog_charset')))); 
    731731                        if ( empty($title) ) 
    732732                                $title = htmlentities(strip_tags($rss->get_title())); 
    733                         $link = esc_url(strip_tags($rss->get_permalink())); 
     733                        $link = clean_url(strip_tags($rss->get_permalink())); 
    734734                        while ( stristr($link, 'http') != $link ) 
    735735                                $link = substr($link, 1); 
    736736                } 
     
    739739                        $title = empty($desc) ? __('Unknown Feed') : $desc; 
    740740 
    741741                $title = apply_filters('widget_title', $title ); 
    742                 $url = esc_url(strip_tags($url)); 
     742                $url = clean_url(strip_tags($url)); 
    743743                $icon = includes_url('images/rss.png'); 
    744744                if ( $title ) 
    745745                        $title = "<a class='rsswidget' href='$url' title='" . esc_attr(__('Syndicate this content')) ."'><img style='background:orange;color:white;border:none;' width='14' height='14' src='$icon' alt='RSS' /></a> <a class='rsswidget' href='$link' title='$desc'>$title</a>"; 
     
    813813                $link = $item->get_link(); 
    814814                while ( stristr($link, 'http') != $link ) 
    815815                        $link = substr($link, 1); 
    816                 $link = esc_url(strip_tags($link)); 
     816                $link = clean_url(strip_tags($link)); 
    817817                $title = esc_attr(strip_tags($item->get_title())); 
    818818                if ( empty($title) ) 
    819819                        $title = __('Untitled'); 
    820820 
    821821                $desc = str_replace(array("\n", "\r"), ' ', esc_attr(strip_tags(@html_entity_decode($item->get_description(), ENT_QUOTES, get_option('blog_charset'))))); 
    822822                $desc = wp_html_excerpt( $desc, 360 ) . ' [&hellip;]'; 
    823                 $desc = esc_html( $desc ); 
     823                $desc = wp_specialchars( $desc ); 
    824824 
    825825                if ( $show_summary ) { 
    826826                        $summary = "<div class='rssSummary'>$desc</div>"; 
     
    844844                if ( $show_author ) { 
    845845                        $author = $item->get_author(); 
    846846                        $author = $author->get_name(); 
    847                         $author = ' <cite>' . esc_html( strip_tags( $author ) ) . '</cite>'; 
     847                        $author = ' <cite>' . wp_specialchars( strip_tags( $author ) ) . '</cite>'; 
    848848                } 
    849849 
    850850                if ( $link == '' ) { 
     
    879879 
    880880        $number = esc_attr( $number ); 
    881881        $title  = esc_attr( $title ); 
    882         $url    = esc_url( $url ); 
     882        $url    = clean_url( $url ); 
    883883        $items  = (int) $items; 
    884884        if ( $items < 1 || 20 < $items ) 
    885885                $items  = 10; 
     
    958958        $items = (int) $widget_rss['items']; 
    959959        if ( $items < 1 || 20 < $items ) 
    960960                $items = 10; 
    961         $url           = esc_url_raw(strip_tags( $widget_rss['url'] )); 
     961        $url           = sanitize_url(strip_tags( $widget_rss['url'] )); 
    962962        $title         = trim(strip_tags( $widget_rss['title'] )); 
    963963        $show_summary  = (int) $widget_rss['show_summary']; 
    964964        $show_author   = (int) $widget_rss['show_author']; 
     
    971971                if ( is_wp_error($rss) ) { 
    972972                        $error = $rss->get_error_message(); 
    973973                } else { 
    974                         $link = esc_url(strip_tags($rss->get_permalink())); 
     974                        $link = clean_url(strip_tags($rss->get_permalink())); 
    975975                        while ( stristr($link, 'http') != $link ) 
    976976                                $link = substr($link, 1); 
    977977                } 
     
    995995        function widget( $args, $instance ) { 
    996996                extract($args); 
    997997                $title = apply_filters('widget_title', empty($instance['title']) ? __('Tags') : $instance['title']); 
     998                 
     999                $largest = isset($instance['largest']) ? $instance['largest'] : 22; 
     1000                $smallest = isset($instance['smallest']) ? $instance['smallest'] : 6; 
     1001                $unit = isset($instance['unit']) ? $instance['unit'] : 'pt'; 
     1002                $number = isset($instance['number']) ? $instance['number'] : 45; 
     1003                $format = isset($instance['format']) ? $instance['format'] : 'flat'; 
     1004                $orderby = isset($instance['orderby']) ? $instance['orderby'] : 'name'; 
     1005                $order = isset($instance['order']) ? $instance['order'] : 'ASC'; 
    9981006 
    9991007                echo $before_widget; 
    10001008                if ( $title ) 
    10011009                        echo $before_title . $title . $after_title; 
    10021010                echo '<div>'; 
    1003                 wp_tag_cloud(apply_filters('widget_tag_cloud_args', array())); 
     1011                wp_tag_cloud(apply_filters('widget_tag_cloud_args', array('largest' => $largest, 'smallest' => $smallest, 'unit' => $unit, 'number' => $number, 'format' => $format, 'orderby' => $orderby, 'order' => $order ))); 
    10041012                echo "</div>\n"; 
    10051013                echo $after_widget; 
    10061014        } 
    10071015 
    10081016        function update( $new_instance, $old_instance ) { 
    10091017                $instance['title'] = strip_tags(stripslashes($new_instance['title'])); 
     1018                $instance['largest'] = $new_instance['largest']; 
     1019                $instance['smallest'] = $new_instance['smallest']; 
     1020                $instance['unit'] = strip_tags(stripslashes($new_instance['unit'])); 
     1021                $instance['number'] = $new_instance['number']; 
     1022                $instance['format'] = strip_tags(stripslashes($new_instance['format'])); 
     1023                $instance['orderby'] = strip_tags(stripslashes($new_instance['orderby'])); 
     1024                $instance['order'] = strip_tags(stripslashes($new_instance['order'])); 
    10101025                return $instance; 
    10111026        } 
    10121027 
    10131028        function form( $instance ) { 
    10141029?> 
    10151030        <p><label for="<?php echo $this->get_field_id('title'); ?>"> 
    1016         <?php _e('Title:') ?> 
     1031        <?php _e('Title:'); ?> 
    10171032        <input type="text" class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" /> 
    10181033        </label></p> 
     1034        <p><label for="<?php echo $this->get_field_id('largest'); ?>"> 
     1035        <?php _e('Maximum Font Size:'); ?> 
     1036        <input type="text" class="widefat" id="<?php echo $this->get_field_id('largest'); ?>" name="<?php echo $this->get_field_name('largest'); ?>" value="<?php echo esc_attr($instance['largest']); ?>" size="4" /> 
     1037        </label></p> 
     1038        <p><label for="<?php echo $this->get_field_id('smallest'); ?>"> 
     1039        <?php _e('Minimum Font Size:'); ?> 
     1040        <input type="text" class="widefat" id="<?php echo $this->get_field_id('smallest'); ?>" name="<?php echo $this->get_field_name('smallest'); ?>" value="<?php echo esc_attr($instance['smallest']); ?>" size="4" /> 
     1041        </label></p> 
     1042        <p><label for="<?php echo $this->get_field_id('unit'); ?>"> 
     1043        <?php _e('Font size unit:'); ?> 
     1044        <input type="text" class="widefat" id="<?php echo $this->get_field_id('unit'); ?>" name="<?php echo $this->get_field_name('unit'); ?>" value="<?php echo esc_attr($instance['unit']); ?>" size="4" /> 
     1045        </label></p> 
     1046        <p><label for="<?php echo $this->get_field_id('number'); ?>"> 
     1047        <?php _e('Number to show:'); ?> 
     1048        <input type="text" class="widefat" id="<?php echo $this->get_field_id('number'); ?>" name="<?php echo $this->get_field_name('number'); ?>" value="<?php echo esc_attr($instance['number']); ?>" size="4" /> 
     1049        </label></p> 
     1050        <p><label for="<?php echo $this->get_field_id('format'); ?>"> 
     1051        <?php _e('Display Format:'); ?> 
     1052        <select class="widefat" size="1" id="<?php echo $this->get_field_id('format'); ?>" name="<?php echo $this->get_field_name('format'); ?>"> 
     1053                <option value="flat" <?php selected($format, 'flat') ?>><?php _e('Flat'); ?></option> 
     1054                <option value="list" <?php selected($format, 'list') ?>><?php _e('List'); ?></option> 
     1055        </select></label></p> 
     1056        <p><label for="<?php echo $this->get_field_id('orderby'); ?>"> 
     1057        <?php _e('Order By:'); ?> 
     1058        <select class="widefat" size="1" id="<?php echo $this->get_field_id('orderby'); ?>" name="<?php echo $this->get_field_name('orderby'); ?>"> 
     1059                <option value="name" <?php selected($orderby, 'name') ?>><?php _e('Name'); ?></option> 
     1060                <option value="count" <?php selected($orderby, 'count') ?>><?php _e('Count'); ?></option> 
     1061        </select></label></p> 
     1062        <p><label for="<?php echo $this->get_field_id('order'); ?>"> 
     1063        <?php _e('Order:'); ?> 
     1064        <select class="widefat" size="1" id="<?php echo $this->get_field_id('order'); ?>" name="<?php echo $this->get_field_name('order'); ?>"> 
     1065                <option value="ASC" <?php selected($order, 'ASC' )?>><?php _e('Ascending'); ?></option> 
     1066                <option value="DESC" <?php selected($order, 'DESC') ?>><?php _e('Descending'); ?></option> 
     1067        </select></label></p> 
     1068         
    10191069<?php 
    10201070        } 
    10211071}