Skip to content

Instantly share code, notes, and snippets.

@Ricardo-Diaz
Forked from blogjunkie/front-page.php
Last active August 29, 2015 14:25
Show Gist options
  • Select an option

  • Save Ricardo-Diaz/d27da50377547f14ad01 to your computer and use it in GitHub Desktop.

Select an option

Save Ricardo-Diaz/d27da50377547f14ad01 to your computer and use it in GitHub Desktop.

Revisions

  1. @blogjunkie blogjunkie revised this gist Jul 15, 2015. 2 changed files with 2 additions and 6 deletions.
    4 changes: 1 addition & 3 deletions front-page.php
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,5 @@
    <?php
    /**
    * Only modified code shown
    */
    //* Do NOT include the opening php tag shown above. Only modified code shown below.

    function metro_homepage_widgets() {

    4 changes: 1 addition & 3 deletions functions.php
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,5 @@
    <?php
    /**
    * Only modified code shown
    */
    //* Do NOT include the opening php tag shown above. Only modified code shown below.

    //* Delete metro_homepage_content transient
    function metro_delete_homepage_transient() {
  2. @blogjunkie blogjunkie created this gist Jul 15, 2015.
    64 changes: 64 additions & 0 deletions front-page.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,64 @@
    <?php
    /**
    * Only modified code shown
    */

    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();
    14 changes: 14 additions & 0 deletions functions.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,14 @@
    <?php
    /**
    * Only modified code shown
    */

    //* 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