If you don’t mind wrapping your content in Shortcode
then you can easily have them hidden after a specific time. Granted you don’t cache the page for longer than needed.
Wrap your content in [content_expires]
shortcodes. Time should be based on your server’s timezone.
[content_expires]NEVER Expires[/content_expires]
[content_expires date="2016-10-25 00:00:00"]PAST[/content_expires]
[content_expires date="2116-10-26 04:20:00"]FUTURE[/content_expires]
Then add the shortcode handler.
function content_expires__shortcode( $atts, $content = null ) {
$a = shortcode_atts( array (
'date' => '', // "2010-01-21 00:00:00"
), $atts );
// expires date
$date = $a[ 'date' ];
// not set, so we're fine
if ( empty( $date ) ) {
return $content;
}
// today's date
$today = date( "Y-m-d H:i:s" );
// only future time is allow. In the past will not be returned.
return $date > $today ? $content : '';
}
add_shortcode( 'content_expires', 'content_expires__shortcode' );
Now content will only be rendered if it hasn’t reached the date specified.