Cache post content, translations and nav menu output in persistent object cache.
This MU plugin works well in production providing you understand its source code (133 sloc).
Please see https://github.com/szepeviktor/wordpress-website-lifecycle/blob/master/WordPress-performance.md
Of course you need persistent object cache. Consider Redis server and wp-redis
plugin.
Replace the_content()
calls in your theme.
NOTICE Replace only argument-less calls! $more_link_text
and $strip_teaser
are not supported.
find -type f -name "*.php" | xargs -r -L 1 sed -i -e 's|\bthe_content();|the_content_cached();|g'
wp_suspend_cache_addition( true );
define( 'DONOTCACHEPAGE', true );
Protection against plugin deactivation.
Copy these to your theme's functions.php.
if ( ! function_exists( 'the_content_cached' ) ) {
function the_content_cached( $more_link_text = null, $strip_teaser = false ) {
the_content( $more_link_text, $strip_teaser );
}
}
if ( ! function_exists( 'get_the_content_cached' ) ) {
function get_the_content_cached( $more_link_text = null, $strip_teaser = false ) {
return get_the_content( $more_link_text, $strip_teaser );
}
}
if ( ! function_exists( 'get_template_part_cached' ) ) {
function get_template_part_cached( $slug, $name = null, $version_hash = '' ) {
get_template_part( $slug, $name );
}
}
- Tiny navigation menu cache - for nav menu output
- Tiny translation cache - for translations (.mo files)