transient/fragment cache

  • Author
    Posts
  • #32145
    Kogar

    I would love to enable fragment caching in w3tc or have some kind of “short term” persistent cache to further reduce query usage while logged in without having to (re)edit the parent theme on each update.

    For example i tried to implement a transient cache in single.php:

    <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
    	<?php 
    	//changes beginning open
    $tIDSingle = $post->ID;
    $output = get_transient($tIDSingle);
    if($output === false || is_preview())
    {
    	ob_start(); 	//changes beginning close
    ?>	
    				<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    					<h1 class="entry-title"><?php the_title(); ?></h1>
    					<?php cryout_post_title_hook(); ?>
    					<div class="entry-meta">
    						<?php tempera_posted_on(); cryout_post_meta_hook(); ?>
    					</div><!-- .entry-meta -->
    
    					<div class="entry-content">
    						<?php the_content(); ?>
    						<?php wp_link_pages( array( 'before' => '<div class="page-link"><span>' . __( 'Pages:', 'tempera' ), 'after' => '</span></div>' ) ); ?>
    					</div><!-- .entry-content -->
    
    <?php if ( get_the_author_meta( 'description' ) ) : // If a user has filled out their description, show a bio on their entries  ?>
    					<div id="entry-author-info">
    						<div id="author-avatar">
    							<?php echo get_avatar( get_the_author_meta( 'user_email' ), apply_filters( 'tempera_author_bio_avatar_size', 60 ) ); ?>
    						</div><!-- #author-avatar -->
    						<div id="author-description">
    							<h2><?php echo esc_attr( get_the_author() ); ?></h2>
    							<?php the_author_meta( 'description' ); ?>
    							<div id="author-link">
    								<a href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>">
    									<?php printf( __( 'View all posts by ','tempera').'%s <span class="meta-nav">&rarr;</span>', get_the_author() ); ?>
    								</a>
    							</div><!-- #author-link	-->
    						</div><!-- #author-description -->
    					</div><!-- #entry-author-info -->
    <?php endif; ?>
    
    					<footer class="entry-meta">
    						<?php tempera_posted_in(); ?>
    						<?php edit_post_link( __( 'Edit', 'tempera' ), '<span class="edit-link"><i class="icon-edit icon-metas"></i> ', '</span>' ); cryout_post_footer_hook(); ?>
    					</footer><!-- .entry-meta -->
    				</div><!-- #post-## -->
    
    				<div id="nav-below" class="navigation">
    					<div class="nav-previous"><?php previous_post_link( '%link', '<i class="meta-nav-prev"></i> %title' ); ?></div>
    					<div class="nav-next"><?php next_post_link( '%link', '%title <i class="meta-nav-next"></i>' ); ?></div>
    				</div><!-- #nav-below -->
    <?php
    //changes end open
    $output = ob_get_clean();
    set_transient($tIDSingle, $output, 15*MINUTE_IN_SECONDS);
    }
    echo $output; //changes end close
    ?>				
    <?php comments_template( '', true ); ?>
    <?php endwhile; // end of the loop. ?>

    I also looked at content\content.php and content\content-page.php. These files seems to handle most simple use cases.

Viewing 1 post (of 1 total)

The topic ‘transient/fragment cache’ is closed to new replies.