Forum Replies Created

Viewing 15 replies - 16 through 30 (of 328 total)
  • WP Super Cache, whether “on” or “half-on”, caches blog page renderings, so if you require that a blog page is rendered (e.g., the virtual() is run) on each blog page load, then you cannot have WPSC cache that blog page.

    (I’m talking about any blog page here, not Pages.)

    It’s the same situation as those “Most Visited Pages” plugins. WPSC cannot cache them because their code needs to be run on every blog page load.

    The index\.php exclusion is for something else.

    However, if you insist, there’s a mod you can do. You can make WPSC run your own PHP after it readfiles the page HTML from the ‘half-on’ cache. Add your PHP before the die(); on line 109 of wp-cache-phase1.php.

    if ( $meta[ 'dynamic' ] ) {
    	include($cache_file);
    } else {
    	readfile( $cache_file );  // <-- readfile from cache/
    	}
    // <-- add your PHP here. Go crazy.
    die();

    I hope this helps.

    Thread Starter pinoyca

    (@pinoyca)

    Thanks. If you decide to get the real-life numbers, remember to remind the blog admin to measure benchmarks during the web server and/or database server’s busiest hours, that is, the time the plugin can help the most.

    Unknownplanet, if you activate wp_cache_debug in your wp-content/wp-cache-config.php, then the plugin will send you emails whenever cleaning expired pages has taken too long and will give you a hint that you have too many cached pages and your expiry time is too long.

    No emails, you’re fine.

    Hint: If a page’s Super-Cache file exists (i.e., in the cache/supercache/... folder), then expired or not, Apache will not even load WordPress for that page for ordinary visitors — so whatever config or setting or tweak or PHP you do won’t matter.

    Forum: Fixing WordPress
    In reply to: Link Category Sort

    Is there a way to specify what order I want them in?

    Guys, use the widget_links_args filter. It’s very easy.

    function widget_links_args_filter($args) {
    	$args['orderby'] = 'rating';  // Sort links by rating
    	$args['order'] = 'DESC';      // descending
    	return $args;
    }
    add_filter('widget_links_args','widget_links_args_filter');

    You can paste this code anywhere, such as your theme’s function.php.

    I hope this helps.

    How do I change the sort order of the links in a link category? I do not see this as an option when I edit the link category

    No need for an additional plugin, tony/guys. Use the widget_links_args filter. It’s very easy.

    function widget_links_args_filter($args) {
    	$args['orderby'] = 'rating';  // Sort links by rating
    	$args['order'] = 'DESC';      // descending
    	return $args;
    }
    add_filter('widget_links_args','widget_links_args_filter');

    You can paste this code anywhere, such as your theme’s function.php.

    I hope this helps.

    it may be possible that the cpu overhead of parsing the cache is equal to the i/o overhead of calling the database if you are dealing with small queries. I’d be interested to get some input from others on this.

    This is seen very easily with a define('SAVEQUERIES', true); (as per http://codex.wordpress.org/Editing_wp-config.php#Save_queries_for_analysis ) and a simple hack on db-module.php (and also to the copy in /wp-content/db.php). Add the following somewhere near line 720:

    if ( defined('SAVEQUERIES') && SAVEQUERIES )
    	$this->queries[] = array( $query, $this->timer_stop(), $this->get_caller(), "Cache hit" );

    (Posterd, you may like to commit this hack to your code.)

    Then load a page in two browser windows, one minute apart.

    It will be evident that DB Cache shaves milliseconds on some queries such as queries with JOINs.

    If “doing a ‘large number of MySQL calls.'” is your problem then use the DB Cache plugin. DB Cache cuts down the number of actual SQL calls by caching previous SQL queries to the filesystem.

    I posted the same question at http://wordpress.org/support/topic/306375 .

    will these two plugins conflict with each other if I try to use them together or is it all right to use them together to super performance?

    Each of them will try to save an advanced-cache.php on your /wp-contents/ directory, so therefore only one of them will actually run, if at all.

    My personal advice is to try Donncha’s plugin first and put it on “on mode”. If it works, your CPU load is much less and your site loads much faster.

    “On mode” serves cached pages without running PHP or making database connections at all.

    If “on mode” doesn’t work, well, Hyper Cache and WP Super Cache “half-on” have essentially the same mechanism and share some features, although each has unique features and options. Hyper Cache is a somewhat better deal because it uses a little less memory.

    Is there no database connection aswel?

    If the page is in the cache, yes, for both.

    Next time when asking for help please elaborate. We’re not mind-readers. There are a thousand things that can go wrong but can be easily fixed.

    Hyper Cache can only cache the whole page, not piecemeal. So can WP Super Cache.

    What you can do is have your sidebar in an iframe.

    I hope this helps.

    1) Oui, monsieur.

    2) dbc_clear only deletes expired cache files.

    3) some queries and situations are automatically skipped:

    // cache only frontside
    if (
    	defined('DOING_CRON') || strpos($_SERVER['REQUEST_URI'],'wp-admin') ||
    	strpos($_SERVER['REQUEST_URI'],'wp-login') || strpos($_SERVER['REQUEST_URI'],'wp-register') || strpos($_SERVER['REQUEST_URI'],'wp-signup') ||
    	preg_match("/\\s*(insert|delete|update|replace|alter|SET NAMES|FOUND_ROWS)/si",$query)
    ) $dbc_cachable = false;
    
    // for hard queries
    if (preg_match("/\\s*(JOIN | \* |\*\,)/si",$query)) $dbc_cachable = true;

    3) Yes
    4) No, see #2
    5) See above conditions.

    If it does offer improvements, then likely your mySQL server needs some work.

    Retrieving a past query result from the file system may be faster than a JOIN.

    The plugin is better for shared hosting where one can’t tweak the MySQL config (query cache).

    Plus, with this plugin’s “$tag” system, one can quickly hack it such that certain queries are cached longer, shorter or not at all.

    MySQL has limited or no support for differential backup, transactional log backup, mirroring, replication or log shipping. There is no “sync” option.

Viewing 15 replies - 16 through 30 (of 328 total)