对于类似发布各种活动通知或到期时间内容的 WordPress 站点,也许会需要这样一个功能:发布活动内容的时候设定活动的到期日期,当活动还没有
过期,网页显示 「进行中」;当活动已过了设定的日期,网页则显示 「已到期」 或者不再显示该文章。有了这个功能,WordPress 站长就不需要每次在活动
过期后再编辑文章,实现的方法可以通过 WordPress 内置的自定义字段。

创建日期自定义字段:

字段名称使用:expiration

设定日期的格式必须是:mm/dd/yyyy 00:00:00 如:01/01/2015 00:00:00

修改主题模板:

编辑当前使用的 WordPress 模板,修改文章主循环代码:

<?php if (have_posts()) : while (have_posts()) : the_post(); $expirationtime = get_post_custom_values('expiration'); if (is_array($expirationtime)) { $expirestring = implode($expirationtime); } $secondsbetween = strtotime($expirestring)-time(); if ( $secondsbetween > 0 ) { ?> <div id="post-<?php the_ID();?>"> <h2><?php the_title();?></h2> <div > <?php the_excerpt();?> </div> </div> <?php } endwhile; endif; ?>

上面代码的作用是如果当前时间超过设定的时间,文章则不显示。

编辑当前使用的主题模板,修改文章主循环代码:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div id="post-<?php the_ID();?>"> <h2><?php the_title();?></h2> <div > <?php the_excerpt();?> <?php $expirationtime = get_post_custom_values('expiration'); if (is_array($expirationtime)) { $expirestring = implode($expirationtime); } $secondsbetween = strtotime($expirestring)-time(); if ( $secondsbetween > 0 ) { echo '进行中'; }else { echo '已过期'; } ?> </div> </div> <?php endwhile; endif; ?>

上面代码的作用是如果当前时尚没有超过设定的时间内容中就显示 「进行中」,否则就显示 「已过期」 。