芝麻web文件管理V1.00
编辑当前文件:/home/r5772835/public_html/rigato2.ycreate.site/wp-content/themes/swell/lib/hooks/cache_clear.php
id; $widgets = wp_get_sidebars_widgets(); // = get_option( 'sidebars_widgets' ); $keys = \SWELL_Theme::$cache_keys; $cache_keys = $keys['widget']; // ヘッダー内ウィジェット更新時 if ( isset( $widgets['head_box'] ) && is_array( $widgets['head_box'] ) ) { if ( in_array( $this_item_id, $widgets['head_box'], true ) ) { $cache_keys = array_merge( $cache_keys, $keys['header'] ); } } \SWELL_Theme::clear_cache( $cache_keys ); return $instance; }, 99, 4); /** * ウィジェットの登録数が変わっている場合の処理(編集ではなく新規追加時の対応) */ add_action( 'widgets_init', function() { if ( ! is_admin() ) return; $cache_data = get_transient( 'swell_parts_sidebars_widgets' ); $widget_data = wp_get_sidebars_widgets(); if ( $cache_data !== $widget_data ) { $keys = \SWELL_Theme::$cache_keys; $cache_keys = $keys['widget']; if ( isset( $cache_data['head_box'] ) && isset( $widget_data['head_box'] ) ) { if ( $cache_data['head_box'] !== $widget_data['head_box'] ) { $cache_keys = array_merge( $cache_keys, $keys['header'] ); } } \SWELL_Theme::clear_cache( $cache_keys ); // ウィジェット登録状況をキャッシュ set_transient( 'swell_parts_sidebars_widgets', $widget_data ); } }, 99); /** * カスタムメニューの更新時にキャッシュ削除 */ add_action( 'wp_update_nav_menu', function( $menu_id ) { $locations = get_nav_menu_locations(); $keys = \SWELL_Theme::$cache_keys; $cache_keys = $keys['widget']; // ロケーションに登録済みのナビであれば、ロケーションに応じてキャッシュを削除 foreach ( $locations as $location => $id ) { if ( $menu_id === $id ) { // 複数のロケーションに設定する場合もあるので、elseif ではなく全て if で。 if ( 'header_menu' === $location || 'sp_head_menu' ) { $cache_keys = array_merge( $cache_keys, $keys['header'] ); } if ( 'pickup_banner' === $location ) $cache_keys[] = 'swell_pickup_banner'; if ( 'fix_bottom_menu' === $location ) $cache_keys[] = 'swell_fix_bottom_menu'; } } \SWELL_Theme::clear_cache( $cache_keys ); }, 99);