Last active
August 30, 2015 03:10
-
-
Save blogjunkie/39368f93a8d92cc6d060 to your computer and use it in GitHub Desktop.
Cache Metro Pro homepage with Transients API
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//* Do NOT include the opening php tag shown above. Only modified code shown below. | |
function metro_homepage_widgets() { | |
// get the transient | |
$metro_homepage_content = get_transient( 'metro_homepage_content' ); | |
// check if homepage content exists | |
if ( false === $metro_homepage_content ) : | |
// homepage content doesn't exist, so generate the content now | |
// start the output buffer | |
ob_start(); | |
// output the widgets | |
genesis_widget_area( 'home-top', array( | |
'before' => '<div class="home-top widget-area">', | |
'after' => '</div>', | |
) ); | |
if ( is_active_sidebar( 'home-middle-left' ) || is_active_sidebar( 'home-middle-right' ) ) { | |
echo '<div class="home-middle">'; | |
genesis_widget_area( 'home-middle-left', array( | |
'before' => '<div class="home-middle-left widget-area">', | |
'after' => '</div>', | |
) ); | |
genesis_widget_area( 'home-middle-right', array( | |
'before' => '<div class="home-middle-right widget-area">', | |
'after' => '</div>', | |
) ); | |
echo '</div>'; | |
} | |
genesis_widget_area( 'home-bottom', array( | |
'before' => '<div class="home-bottom widget-area">', | |
'after' => '</div>', | |
) ); | |
// save homepage content as $metro_homepage_content | |
$metro_homepage_content = ob_get_contents(); | |
// empty buffer and stop output buffering | |
ob_end_clean(); | |
// save transient to last for 12 hours | |
set_transient('metro_homepage_content', $metro_homepage_content, 12 * HOUR_IN_SECONDS ); | |
endif; | |
// output the new created fragment if transient does not exist. | |
echo $metro_homepage_content; | |
} | |
genesis(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//* Do NOT include the opening php tag shown above. Only modified code shown below. | |
//* Delete metro_homepage_content transient | |
function metro_delete_homepage_transient() { | |
delete_transient( 'metro_homepage_content' ); | |
} | |
add_action( 'save_post', 'metro_delete_homepage_transient' ); // delete transient when saving posts | |
add_action( 'deleted_post', 'metro_delete_homepage_transient' ); // delete transient when deleting posts | |
add_action( 'update_option', 'metro_delete_homepage_transient' ); // delete transient when any WP settings are saved | |
// add_action( 'update_option_sidebars_widgets', 'metro_delete_homepage_transient' ); // when widgets are repositioned | |
// add_action( 'update_option_widget_featured-post', 'metro_delete_homepage_transient' ); // when Featured Post widget settings saved |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment