Changeset 38252 for branches/4.6/src/wp-includes/plugin.php
- Timestamp:
- 08/13/2016 04:01:09 PM (8 years ago)
- Location:
- branches/4.6
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/4.6
-
branches/4.6/src/wp-includes/plugin.php
r38224 r38252 1002 1002 } 1003 1003 } 1004 1005 /**1006 * Backs up global variables used for actions and filters.1007 *1008 * Prevents redefinition of these globals in advanced-cache.php from accidentally1009 * destroying existing data.1010 *1011 * @since 4.6.01012 * @access private1013 *1014 * @global array $wp_filter Stores all filters and actions.1015 * @global array $wp_actions Stores the amount of times an action was triggered.1016 * @global array $merged_filters Merges the filter hooks using this function.1017 * @global array $wp_current_filter Stores the list of current filters with the current one last.1018 * @staticvar array $backup_globals Backed up globals.1019 *1020 * @return array the staticvar from the first time it is set.1021 */1022 function _backup_plugin_globals( $backup = true ) {1023 global $wp_filter, $wp_actions, $merged_filters, $wp_current_filter;1024 1025 static $backup_globals = array();1026 1027 if ( $backup ) {1028 $backup_globals = array(1029 'backup_wp_filter' => $wp_filter,1030 'backup_wp_actions' => $wp_actions,1031 'backup_merged_filters' => $merged_filters,1032 'backup_wp_current_filter' => $wp_current_filter,1033 );1034 1035 $wp_filter = $wp_actions = array();1036 }1037 return $backup_globals;1038 }1039 1040 /**1041 * Safely restores backed up global variables used for actions and filters.1042 *1043 * @since 4.6.01044 * @access private1045 *1046 * @global array $wp_filter Stores all filters and actions.1047 * @global array $wp_actions Stores the amount of times an action was triggered.1048 * @global array $merged_filters Merges the filter hooks using this function.1049 * @global array $wp_current_filter Stores the list of current filters with the current one last.1050 * @staticvar array $backup_globals Backed up globals.1051 */1052 function _restore_plugin_globals() {1053 global $wp_filter, $wp_actions, $merged_filters, $wp_current_filter;1054 1055 $backup_globals = _backup_plugin_globals( false );1056 1057 if ( empty( $wp_filter ) ) {1058 $wp_filter = $backup_globals['backup_wp_filter'];1059 } else {1060 $added_filters = $wp_filter;1061 $wp_filter = $backup_globals['backup_wp_filter'];1062 1063 foreach ( $added_filters as $tag => $callback_groups ) {1064 // Loop through callback groups.1065 foreach ( $callback_groups as $priority => $callbacks ) {1066 1067 // Loop through callbacks.1068 foreach ( $callbacks as $cb ) {1069 add_filter( $tag, $cb['function'], $priority, $cb['accepted_args'] );1070 }1071 }1072 }1073 }1074 1075 if ( empty ( $wp_actions ) ) {1076 $wp_actions = $backup_globals['backup_wp_actions'];1077 } else {1078 $run_actions = $wp_actions;1079 $wp_actions = $backup_globals['backup_wp_actions'];1080 1081 foreach( $run_actions as $action => $count ) {1082 if ( ! isset( $wp_actions[ $action ] ) ) {1083 $wp_actions[ $action ] = 0;1084 }1085 1086 $wp_actions[ $action ] += $count;1087 }1088 }1089 1090 if ( $merged_filters !== $backup_globals['backup_merged_filters'] ) {1091 $merged_filters = array_merge_recursive( $merged_filters, $backup_globals['backup_merged_filters'] );1092 }1093 1094 if ( $wp_current_filter !== $backup_globals['backup_wp_current_filter'] ) {1095 $wp_current_filter = array_merge_recursive( $wp_current_filter, $backup_globals['backup_wp_current_filter'] );1096 }1097 }
Note: See TracChangeset
for help on using the changeset viewer.