Caching on object tag?
-
My site use one right side bar, which contains about 15 widgets. I use widget logic to turn on/off certain widgets by looking at certain tags on the current post. It works fine except I found many duplicated database queries are issued to look up the “tag” for the same post from widget logic filter. It’s even worse since these queries are join operations. I guess each one of these queries is called for filtering each widget.
My question is that can widget logic implement some kind of caching?
such as http://codex.ww.wp.xz.cn/Class_Reference/WP_Object_Cache#Persistent_Caching scoped in the same request?Thanks
RaySELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('post_tag') AND tr.object_id IN (2281) ORDER BY t.name ASC require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/suffusion/page.php'), get_header, locate_template, load_template, require_once('/themes/suffusion/header.php'), suffusion_after_begin_wrapper, do_action('suffusion_after_begin_wrapper'), call_user_func_array, suffusion_display_closed_header, suffusion_page_header, do_action('suffusion_page_header'), call_user_func_array, suffusion_display_header, suffusion_display_widgets_in_header, get_sidebar, locate_template, load_template, require_once('/themes/suffusion/sidebar-in-header.php'), suffusion_is_sidebar_empty, wp_get_sidebars_widgets, apply_filters('sidebars_widgets'), call_user_func_array, widget_logic_filter_sidebars_widgets, eval, has_tag, has_term, is_object_in_term, wp_get_object_terms, wpdb2->query #59 (0.5ms) SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('post_tag') AND tr.object_id IN (2281) ORDER BY t.name ASC require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/suffusion/page.php'), get_header, locate_template, load_template, require_once('/themes/suffusion/header.php'), suffusion_after_begin_wrapper, do_action('suffusion_after_begin_wrapper'), call_user_func_array, suffusion_display_closed_header, suffusion_page_header, do_action('suffusion_page_header'), call_user_func_array, suffusion_display_header, suffusion_display_widgets_in_header, get_sidebar, locate_template, load_template, require_once('/themes/suffusion/sidebar-in-header.php'), suffusion_is_sidebar_empty, wp_get_sidebars_widgets, apply_filters('sidebars_widgets'), call_user_func_array, widget_logic_filter_sidebars_widgets, eval, has_tag, has_term, is_object_in_term, wp_get_object_terms, wpdb2->query #60 (0.6ms) SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('post_tag') AND tr.object_id IN (2281) ORDER BY t.name ASC require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/suffusion/page.php'), get_header, locate_template, load_template, require_once('/themes/suffusion/header.php'), suffusion_after_begin_wrapper, do_action('suffusion_after_begin_wrapper'), call_user_func_array, suffusion_display_closed_header, suffusion_page_header, do_action('suffusion_page_header'), call_user_func_array, suffusion_display_header, suffusion_display_widgets_in_header, get_sidebar, locate_template, load_template, require_once('/themes/suffusion/sidebar-in-header.php'), suffusion_is_sidebar_empty, wp_get_sidebars_widgets, apply_filters('sidebars_widgets'), call_user_func_array, widget_logic_filter_sidebars_widgets, eval, has_tag, has_term, is_object_in_term, wp_get_object_terms, wpdb2->query #61 (0.5ms) SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('post_tag') AND tr.object_id IN (2281) ORDER BY t.name ASC require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/suffusion/page.php'), get_header, locate_template, load_template, require_once('/themes/suffusion/header.php'), suffusion_after_begin_wrapper, do_action('suffusion_after_begin_wrapper'), call_user_func_array, suffusion_display_closed_header, suffusion_page_header, do_action('suffusion_page_header'), call_user_func_array, suffusion_display_header, suffusion_display_widgets_in_header, get_sidebar, locate_template, load_template, require_once('/themes/suffusion/sidebar-in-header.php'), suffusion_is_sidebar_empty, wp_get_sidebars_widgets, apply_filters('sidebars_widgets'), call_user_func_array, widget_logic_filter_sidebars_widgets, eval, has_tag, has_term, is_object_in_term, wp_get_object_terms, wpdb2->query #62 (0.4ms) SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('post_tag') AND tr.object_id IN (2281) ORDER BY t.name ASC require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/suffusion/page.php'), get_header, locate_template, load_template, require_once('/themes/suffusion/header.php'), suffusion_after_begin_wrapper, do_action('suffusion_after_begin_wrapper'), call_user_func_array, suffusion_display_closed_header, suffusion_page_header, do_action('suffusion_page_header'), call_user_func_array, suffusion_display_header, suffusion_display_widgets_in_header, get_sidebar, locate_template, load_template, require_once('/themes/suffusion/sidebar-in-header.php'), dynamic_sidebar, wp_get_sidebars_widgets, apply_filters('sidebars_widgets'), call_user_func_array, widget_logic_filter_sidebars_widgets, eval, has_tag, has_term, is_object_in_term, wp_get_object_terms, wpdb2->query #63 (0.7ms) SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('post_tag') AND tr.object_id IN (2281) ORDER BY t.name ASC require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/suffusion/page.php'), get_header, locate_template, load_template, require_once('/themes/suffusion/header.php'), suffusion_after_begin_wrapper, do_action('suffusion_after_begin_wrapper'), call_user_func_array, suffusion_display_closed_header, suffusion_page_header, do_action('suffusion_page_header'), call_user_func_array, suffusion_display_header, suffusion_display_widgets_in_header, get_sidebar, locate_template, load_template, require_once('/themes/suffusion/sidebar-in-header.php'), dynamic_sidebar, wp_get_sidebars_widgets, apply_filters('sidebars_widgets'), call_user_func_array, widget_logic_filter_sidebars_widgets, eval, has_tag, has_term, is_object_in_term, wp_get_object_terms, wpdb2->query #64 (0.4ms) SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('post_tag') AND tr.object_id IN (2281) ORDER BY t.name ASC require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/suffusion/page.php'), get_header, locate_template, load_template, require_once('/themes/suffusion/header.php'), suffusion_after_begin_wrapper, do_action('suffusion_after_begin_wrapper'), call_user_func_array, suffusion_display_closed_header, suffusion_page_header, do_action('suffusion_page_header'), call_user_func_array, suffusion_display_header, suffusion_display_widgets_in_header, get_sidebar, locate_template, load_template, require_once('/themes/suffusion/sidebar-in-header.php'), dynamic_sidebar, wp_get_sidebars_widgets, apply_filters('sidebars_widgets'), call_user_func_array, widget_logic_filter_sidebars_widgets, eval, has_tag, has_term, is_object_in_term, wp_get_object_terms, wpdb2->query #65 (0.4ms) SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('post_tag') AND tr.object_id IN (2281) ORDER BY t.name ASChttp://ww.wp.xz.cn/plugins/widget-logic/
[Please ALWAYS use the code buttons when posting code ]
The topic ‘Caching on object tag?’ is closed to new replies.