1: <?php
2:
3: 4: 5: 6: 7:
8: function xu_clean_attachment_cache( $post_id = 0 ) {
9: $groups = [
10: 'xu_wp_get_attachment_image',
11: 'xu_wp_get_attachment_image_sizes',
12: 'xu_wp_get_attachment_image_src',
13: 'xu_wp_get_attachment_image_srcset'
14: ];
15:
16:
17: foreach ( $groups as $group ) {
18: xu_cache_delete_group( $group, $post_id );
19: }
20:
21:
22:
23: $delete_items = [
24: [get_permalink( $post_id ), 'xu_attachment_url_to_postid'],
25: [$post_id, 'xu_wp_get_attachment_url']
26: ];
27:
28:
29: foreach ( $delete_items as $item ) {
30: call_user_func_array( 'xu_cache_delete', $item );
31: }
32: }
33: add_action( 'clean_attachment_cache', 'xu_clean_attachment_cache' );
34:
35: 36: 37:
38: function xu_clean_nav_menu_cache() {
39: xu_cache_delete_group( 'xu_wp_nav_menu' );
40: }
41: add_action( 'wp_create_nav_menu', 'xu_clean_nav_menu_cache' );
42: add_action( 'wp_update_nav_menu', 'xu_clean_nav_menu_cache' );
43: add_action( 'wp_delete_nav_menu', 'xu_clean_nav_menu_cache' );
44:
45: 46: 47: 48: 49:
50: function xu_clean_post_cache( $post_id = 0 ) {
51: if ( wp_is_post_revision( $post_id ) ) {
52: return;
53: }
54:
55: if ( ! get_post_status( $post_id ) ) {
56: return;
57: }
58:
59: $groups = [
60: 'xu_get_posts'
61: ];
62:
63:
64: foreach ( $groups as $group ) {
65: xu_cache_delete_group( $group );
66: }
67:
68:
69:
70: $delete_items = [
71: [get_permalink( $post_id ), 'xu_url_to_postid']
72: ];
73:
74:
75: foreach ( $delete_items as $item ) {
76: call_user_func_array( 'xu_cache_delete', $item );
77: }
78: }
79: add_action( 'clean_post_cache', 'xu_clean_post_cache' );
80: