Ticket #10300: 10300.9.diff
File 10300.9.diff, 9.1 KB (added by , 16 years ago) |
---|
-
wp-includes/default-widgets.php
605 605 $this->WP_Widget('recent-comments', __('Recent Comments'), $widget_ops); 606 606 $this->alt_option_name = 'widget_recent_comments'; 607 607 608 if ( is_active_widget(false, false, $this->id_base) ) 609 add_action( 'wp_head', array(&$this, 'recent_comments_style') ); 608 add_action( 'wp_head', array(&$this, 'recent_comments_style') ); 610 609 611 610 add_action( 'comment_post', array(&$this, 'flush_widget_cache') ); 612 611 add_action( 'wp_set_comment_status', array(&$this, 'flush_widget_cache') ); 613 612 } 614 613 615 function recent_comments_style() { ?> 614 function recent_comments_style() { 615 if ( !is_active_widget(false, false, $this->id_base) ) 616 return; 617 ?> 616 618 <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style> 617 619 <?php 618 620 } -
wp-includes/widgets.php
885 885 function is_active_widget($callback = false, $widget_id = false, $id_base = false, $skip_inactive = true) { 886 886 global $wp_registered_widgets; 887 887 888 $sidebars_widgets = wp_get_sidebars_widgets( );888 $sidebars_widgets = wp_get_sidebars_widgets(false); 889 889 890 890 if ( is_array($sidebars_widgets) ) { 891 891 foreach ( $sidebars_widgets as $sidebar => $widgets ) { … … 935 935 */ 936 936 function is_active_sidebar( $index ) { 937 937 $index = ( is_int($index) ) ? "sidebar-$index" : sanitize_title($index); 938 $sidebars_widgets = wp_get_sidebars_widgets( );938 $sidebars_widgets = wp_get_sidebars_widgets(false); 939 939 if ( isset($sidebars_widgets[$index]) && !empty($sidebars_widgets[$index]) ) 940 940 return true; 941 941 … … 953 953 * @since 2.2.0 954 954 * @access private 955 955 * 956 * @param bool $update Optional, de precated.957 * @return array Upgraded list of widgets to version 3 array format when called from the admin.956 * @param bool $update Optional, default is true. Whether to save upgrade of widget array list. 957 * @return array Upgraded list of widgets to version 2 array format. 958 958 */ 959 function wp_get_sidebars_widgets($ deprecated= true) {959 function wp_get_sidebars_widgets($update = true) { 960 960 global $wp_registered_widgets, $wp_registered_sidebars, $_wp_sidebars_widgets; 961 961 962 962 // If loading from front page, consult $_wp_sidebars_widgets rather than options 963 963 // to see if wp_convert_widget_settings() has made manipulations in memory. 964 if ( !is_admin() ) { 964 if ( is_admin() ) { 965 $sidebars_widgets = get_option('sidebars_widgets', array('array_version' => 3)); 966 } else { 965 967 if ( empty($_wp_sidebars_widgets) ) 966 $_wp_sidebars_widgets = get_option('sidebars_widgets', array( ));968 $_wp_sidebars_widgets = get_option('sidebars_widgets', array('array_version' => 3)); 967 969 968 970 $sidebars_widgets = $_wp_sidebars_widgets; 969 } else { 970 $sidebars_widgets = get_option('sidebars_widgets', array()); 971 $_sidebars_widgets = array(); 971 } 972 $_sidebars_widgets = array(); 972 973 973 if ( isset($sidebars_widgets['wp_inactive_widgets']) ) 974 $sidebars_widgets['array_version'] = 3; 975 elseif ( !isset($sidebars_widgets['array_version']) ) 976 $sidebars_widgets['array_version'] = 1; 974 if ( !isset($sidebars_widgets['array_version']) ) 975 $sidebars_widgets['array_version'] = 1; 977 976 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 977 switch ( $sidebars_widgets['array_version'] ) { 978 case 1 : 979 foreach ( (array) $sidebars_widgets as $index => $sidebar ) 980 if ( is_array($sidebar) ) 981 foreach ( (array) $sidebar as $i => $name ) { 982 $id = strtolower($name); 983 if ( isset($wp_registered_widgets[$id]) ) { 984 $_sidebars_widgets[$index][$i] = $id; 985 continue; 986 } 987 $id = sanitize_title($name); 988 if ( isset($wp_registered_widgets[$id]) ) { 989 $_sidebars_widgets[$index][$i] = $id; 990 continue; 991 } 993 992 994 993 $found = false; 995 994 996 foreach ( $wp_registered_widgets as $widget_id => $widget ) { 997 if ( strtolower($widget['name']) == strtolower($name) ) { 998 $_sidebars_widgets[$index][$i] = $widget['id']; 999 $found = true; 1000 break; 1001 } elseif ( sanitize_title($widget['name']) == sanitize_title($name) ) { 1002 $_sidebars_widgets[$index][$i] = $widget['id']; 1003 $found = true; 1004 break; 1005 } 995 foreach ( $wp_registered_widgets as $widget_id => $widget ) { 996 if ( strtolower($widget['name']) == strtolower($name) ) { 997 $_sidebars_widgets[$index][$i] = $widget['id']; 998 $found = true; 999 break; 1000 } elseif ( sanitize_title($widget['name']) == sanitize_title($name) ) { 1001 $_sidebars_widgets[$index][$i] = $widget['id']; 1002 $found = true; 1003 break; 1006 1004 } 1005 } 1007 1006 1008 1009 1007 if ( $found ) 1008 continue; 1010 1009 1011 unset($_sidebars_widgets[$index][$i]); 1010 unset($_sidebars_widgets[$index][$i]); 1011 } 1012 $_sidebars_widgets['array_version'] = 2; 1013 $sidebars_widgets = $_sidebars_widgets; 1014 unset($_sidebars_widgets); 1015 1016 case 2 : 1017 $sidebars = array_keys( $wp_registered_sidebars ); 1018 if ( !empty( $sidebars ) ) { 1019 // Move the known-good ones first 1020 foreach ( (array) $sidebars as $id ) { 1021 if ( array_key_exists( $id, $sidebars_widgets ) ) { 1022 $_sidebars_widgets[$id] = $sidebars_widgets[$id]; 1023 unset($sidebars_widgets[$id], $sidebars[$id]); 1024 } 1012 1025 } 1013 $_sidebars_widgets['array_version'] = 2;1014 $sidebars_widgets = $_sidebars_widgets;1015 unset($_sidebars_widgets);1016 1026 1017 case 2 : 1018 $sidebars = array_keys( $wp_registered_sidebars ); 1019 if ( !empty( $sidebars ) ) { 1020 // Move the known-good ones first 1021 foreach ( (array) $sidebars as $id ) { 1022 if ( array_key_exists( $id, $sidebars_widgets ) ) { 1023 $_sidebars_widgets[$id] = $sidebars_widgets[$id]; 1024 unset($sidebars_widgets[$id], $sidebars[$id]); 1025 } 1027 // move the rest to wp_inactive_widgets 1028 if ( !isset($_sidebars_widgets['wp_inactive_widgets']) ) 1029 $_sidebars_widgets['wp_inactive_widgets'] = array(); 1030 1031 if ( !empty($sidebars_widgets) ) { 1032 foreach ( $sidebars_widgets as $lost => $val ) { 1033 if ( is_array($val) ) 1034 $_sidebars_widgets['wp_inactive_widgets'] = array_merge( (array) $_sidebars_widgets['wp_inactive_widgets'], $val ); 1026 1035 } 1036 } 1027 1037 1028 // move the rest to wp_inactive_widgets1029 if ( !isset($_sidebars_widgets['wp_inactive_widgets']) )1030 $_sidebars_widgets['wp_inactive_widgets'] = array();1038 $sidebars_widgets = $_sidebars_widgets; 1039 unset($_sidebars_widgets); 1040 } 1031 1041 1032 if ( !empty($sidebars_widgets) ) { 1033 foreach ( $sidebars_widgets as $lost => $val ) { 1034 if ( is_array($val) ) 1035 $_sidebars_widgets['wp_inactive_widgets'] = array_merge( (array) $_sidebars_widgets['wp_inactive_widgets'], $val ); 1036 } 1037 } 1038 1039 $sidebars_widgets = $_sidebars_widgets; 1040 unset($_sidebars_widgets); 1041 } 1042 } 1042 $sidebars_widgets['array_version'] = 3; 1043 if ( $update && is_admin() ) 1044 update_option('sidebars_widgets', $sidebars_widgets); 1043 1045 } 1044 1046 1047 if ( !is_admin() ) 1048 $_wp_sidebars_widgets = $sidebars_widgets; 1049 1045 1050 if ( isset($sidebars_widgets['array_version']) ) 1046 1051 unset($sidebars_widgets['array_version']); 1047 1052 … … 1110 1115 1111 1116 // If loading from the front page, update sidebar in memory but don't save to options 1112 1117 if ( is_admin() ) { 1113 $sidebars_widgets = get_option('sidebars_widgets' );1118 $sidebars_widgets = get_option('sidebars_widgets', array('array_version' => 3)); 1114 1119 } else { 1115 1120 if ( empty($GLOBALS['_wp_sidebars_widgets']) ) 1116 $GLOBALS['_wp_sidebars_widgets'] = get_option('sidebars_widgets', array( ));1121 $GLOBALS['_wp_sidebars_widgets'] = get_option('sidebars_widgets', array('array_version' => 3)); 1117 1122 $sidebars_widgets = &$GLOBALS['_wp_sidebars_widgets']; 1118 1123 } 1119 1120 foreach ( (array) $sidebars_widgets as $index => $sidebar ) { 1121 if ( is_array($sidebar) ) { 1122 foreach ( $sidebar as $i => $name ) { 1123 if ( $base_name == $name ) { 1124 $sidebars_widgets[$index][$i] = "$name-2"; 1125 $changed = true; 1126 break 2; 1124 1125 if ( isset($sidebars_widgets['array_version']) && $sidebars_widgets['array_version'] == 3 ) { 1126 foreach ( (array) $sidebars_widgets as $index => $sidebar ) { 1127 if ( is_array($sidebar) ) { 1128 foreach ( $sidebar as $i => $name ) { 1129 if ( $base_name == $name ) { 1130 $sidebars_widgets[$index][$i] = "$name-2"; 1131 $changed = true; 1132 break 2; 1133 } 1127 1134 } 1128 1135 } 1129 1136 } 1137 1138 if ( is_admin() && $changed ) 1139 update_option('sidebars_widgets', $sidebars_widgets); 1130 1140 } 1131 1132 if ( is_admin() && $changed )1133 update_option('sidebars_widgets', $sidebars_widgets);1134 1141 } 1135 1142 1136 1143 $settings['_multiwidget'] = 1;