diff --git a/wp-includes/widgets.php b/wp-includes/widgets.php index f76b8c696e..9c27428a0e 100644 --- a/wp-includes/widgets.php +++ b/wp-includes/widgets.php @@ -338,7 +338,7 @@ function wp_widget_pages_control() { $options = $newoptions; update_option('widget_pages', $options); } - $title = htmlspecialchars($options['title'], ENT_QUOTES); + $title = attribute_escape($options['title']); ?>

@@ -367,7 +367,7 @@ function wp_widget_search($args) {

- +
@@ -386,7 +386,7 @@ function wp_widget_archives($args) { if($d) { ?> - + @@ -412,7 +412,7 @@ function wp_widget_archives_control() { } $count = $options['count'] ? 'checked="checked"' : ''; $dropdown = $options['dropdown'] ? 'checked="checked"' : ''; - $title = htmlspecialchars($options['title'], ENT_QUOTES); + $title = attribute_escape($options['title']); ?>

@@ -431,9 +431,9 @@ function wp_widget_meta($args) { @@ -448,7 +448,7 @@ function wp_widget_meta_control() { $options = $newoptions; update_option('widget_meta', $options); } - $title = htmlspecialchars($options['title'], ENT_QUOTES); + $title = attribute_escape($options['title']); ?>

@@ -476,7 +476,7 @@ function wp_widget_calendar_control() { $options = $newoptions; update_option('widget_calendar', $options); } - $title = htmlspecialchars($options['title'], ENT_QUOTES); + $title = attribute_escape($options['title']); ?>

@@ -512,8 +512,8 @@ function wp_widget_text_control($number) { $options = $newoptions; update_option('widget_text', $options); } - $title = htmlspecialchars($options[$number]['title'], ENT_QUOTES); - $text = htmlspecialchars($options[$number]['text'], ENT_QUOTES); + $title = attribute_escape($options[$number]['title']); + $text = attribute_escape($options[$number]['text']); ?> " name="text-title-" type="text" value="" /> @@ -546,7 +546,7 @@ function wp_widget_text_page() { -

+

@@ -682,7 +682,7 @@ function wp_widget_recent_entries_control() { update_option('widget_recent_entries', $options); wp_flush_widget_recent_entries(); } - $title = htmlspecialchars($options['title'], ENT_QUOTES); + $title = attribute_escape($options['title']); if ( !$number = (int) $options['number'] ) $number = 5; ?> @@ -737,7 +737,7 @@ function wp_widget_recent_comments_control() { update_option('widget_recent_comments', $options); wp_delete_recent_comments_cache(); } - $title = htmlspecialchars($options['title'], ENT_QUOTES); + $title = attribute_escape($options['title']); if ( !$number = (int) $options['number'] ) $number = 5; ?> @@ -778,10 +778,10 @@ function wp_widget_rss($args, $number = 1) { if ( empty($url) ) return; $rss = fetch_rss($url); - $link = wp_specialchars(strip_tags($rss->channel['link']), 1); + $link = clean_url(strip_tags($rss->channel['link'])); while ( strstr($link, 'http') != $link ) $link = substr($link, 1); - $desc = wp_specialchars(strip_tags(html_entity_decode($rss->channel['description'], ENT_QUOTES)), 1); + $desc = attribute_escape(strip_tags(html_entity_decode($rss->channel['description'], ENT_QUOTES))); $title = $options[$number]['title']; if ( empty($title) ) $title = htmlentities(strip_tags($rss->channel['title'])); @@ -789,12 +789,12 @@ function wp_widget_rss($args, $number = 1) { $title = $desc; if ( empty($title) ) $title = __('Unknown Feed'); - $url = wp_specialchars(strip_tags($url), 1); + $url = clean_url(strip_tags($url)); if ( file_exists(dirname(__FILE__) . '/rss.png') ) $icon = str_replace(ABSPATH, get_option('siteurl').'/', dirname(__FILE__)) . '/rss.png'; else $icon = get_option('siteurl').'/wp-includes/images/rss.png'; - $title = "RSS $title"; + $title = "RSS $title"; ?> @@ -805,8 +805,8 @@ function wp_widget_rss($args, $number = 1) { foreach ($rss->items as $item ) { while ( strstr($item['link'], 'http') != $item['link'] ) $item['link'] = substr($item['link'], 1); - $link = wp_specialchars(strip_tags($item['link']), 1); - $title = wp_specialchars(strip_tags($item['title']), 1); + $link = clean_url(strip_tags($item['link'])); + $title = attribute_escape(strip_tags($item['title'])); if ( empty($title) ) $title = __('Untitled'); $desc = ''; @@ -814,7 +814,7 @@ function wp_widget_rss($args, $number = 1) { $summary = '
' . $item['description'] . '
'; } else { if ( isset( $item['description'] ) && is_string( $item['description'] ) ) - $desc = str_replace(array("\n", "\r"), ' ', wp_specialchars(strip_tags(html_entity_decode($item['description'], ENT_QUOTES)), 1)); + $desc = str_replace(array("\n", "\r"), ' ', attribute_escape(strip_tags(html_entity_decode($item['description'], ENT_QUOTES)))); $summary = ''; } echo "
  • $title$summary
  • "; @@ -832,7 +832,7 @@ function wp_widget_rss_control($number) { $options = $newoptions = get_option('widget_rss'); if ( $_POST["rss-submit-$number"] ) { $newoptions[$number]['items'] = (int) $_POST["rss-items-$number"]; - $url = strip_tags(stripslashes($_POST["rss-url-$number"])); + $url = clean_url(strip_tags(stripslashes($_POST["rss-url-$number"]))); $newoptions[$number]['title'] = trim(strip_tags(stripslashes($_POST["rss-title-$number"]))); if ( $url !== $options[$number]['url'] ) { require_once(ABSPATH . WPINC . '/rss.php'); @@ -851,9 +851,9 @@ function wp_widget_rss_control($number) { $options = $newoptions; update_option('widget_rss', $options); } - $url = htmlspecialchars($options[$number]['url'], ENT_QUOTES); + $url = attribute_escape($options[$number]['url']); $items = (int) $options[$number]['items']; - $title = htmlspecialchars($options[$number]['title'], ENT_QUOTES); + $title = attribute_escape($options[$number]['title']); if ( empty($items) || $items < 1 ) $items = 10; ?>

    @@ -890,7 +890,7 @@ function wp_widget_rss_page() { -

    +