你有没有检查过类内主题升级程序的挂钩?
File: wp-admin/includes/class-theme-upgrader.php
233: /**
234: * Upgrade a theme.
235: *
236: * @since 2.8.0
237: * @since 3.7.0 The `$args` parameter was added, making clearing the update cache optional.
238: * @access public
239: *
240: * @param string $theme The theme slug.
241: * @param array $args {
242: * Optional. Other arguments for upgrading a theme. Default empty array.
243: *
244: * @type bool $clear_update_cache Whether to clear the update cache if successful.
245: * Default true.
246: * }
247: * @return bool|WP_Error True if the upgrade was successful, false or a WP_Error object otherwise.
248: */
249: public function upgrade( $theme, $args = array() ) {
250:
251: $defaults = array(
252: \'clear_update_cache\' => true,
253: );
254: $parsed_args = wp_parse_args( $args, $defaults );
255:
256: $this->init();
257: $this->upgrade_strings();
258:
259: // Is an update available?
260: $current = get_site_transient( \'update_themes\' );
261: if ( !isset( $current->response[ $theme ] ) ) {
262: $this->skin->before();
263: $this->skin->set_result(false);
264: $this->skin->error( \'up_to_date\' );
265: $this->skin->after();
266: return false;
267: }
268:
269: $r = $current->response[ $theme ];
270:
271: add_filter(\'upgrader_pre_install\', array($this, \'current_before\'), 10, 2);
272: add_filter(\'upgrader_post_install\', array($this, \'current_after\'), 10, 2);
273: add_filter(\'upgrader_clear_destination\', array($this, \'delete_old_theme\'), 10, 4);
274: if ( $parsed_args[\'clear_update_cache\'] ) {
275: // Clear cache so wp_update_themes() knows about the new theme.
276: add_action( \'upgrader_process_complete\', \'wp_clean_themes_cache\', 9, 0 );
277: }
278:
279: $this->run( array(
280: \'package\' => $r[\'package\'],
281: \'destination\' => get_theme_root( $theme ),
282: \'clear_destination\' => true,
283: \'clear_working\' => true,
284: \'hook_extra\' => array(
285: \'theme\' => $theme,
286: \'type\' => \'theme\',
287: \'action\' => \'update\',
288: ),
289: ) );
290:
291: remove_action( \'upgrader_process_complete\', \'wp_clean_themes_cache\', 9 );
292: remove_filter(\'upgrader_pre_install\', array($this, \'current_before\'));
293: remove_filter(\'upgrader_post_install\', array($this, \'current_after\'));
294: remove_filter(\'upgrader_clear_destination\', array($this, \'delete_old_theme\'));
295:
296: if ( ! $this->result || is_wp_error($this->result) )
297: return $this->result;
298:
299: wp_clean_themes_cache( $parsed_args[\'clear_update_cache\'] );
300:
301: return true;
302: }