Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
WordPress Fragment Caching convenience wrapper
<?php
/*
Usage:
cache_fragment_output( 'unique-key', 3600, function () {
functions_that_do_stuff_live();
these_should_echo();
});
*/
function cache_fragment_output( $key, $ttl, $function ) {
$group = 'fragment-cache';
$output = wp_cache_get( $key, $group );
if ( empty($output) ) {
ob_start();
call_user_func( $function );
$output = ob_get_clean();
wp_cache_add( $key, $output, $group, $ttl );
}
echo $output;
}
@markjaquith

This comment has been minimized.

Copy link

commented May 23, 2013

Two reasons I didn't do it this way (I feel like I've said this before, but maybe it was to someone else):

  1. Requires PHP 5.3 — I wanted "runs on any WordPress install" code.
  2. Would likely require re-working the output code, if there is any reliance on global variables. I wanted something I could wrap around some random theme code and know that it would work every time.

But I agree that this is cleaner.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.