对于类似发布各种活动通知或到期时间内容的wordpress站点,也许会需要这样一个功能:发布活动内容的时候设定活动的到期日期,当活动还没有 过期,网页显示“进行中”;当活动已过了设定的日期,网页则显示“已到期”或者不再显示该文章。有了这个功能,wordpress站长就不需要每次在活动 过期后再编辑文章,实现的方法可以通过wordpress内置的自定义字段。2 ?+ A; r& X) k& y a( k4 y9 { © 懒人资源
© 懒人资源 : e& |7 o0 k6 o# l* A( I" a创建日期自定义字段:
© https://cityed.cn - Z" m& |& n |字段名称使用:expiration: Z: \% J& G& d$ E* J8 M( o! r* f) A © https://cityed.cn
设定日期的格式必须是:mm/dd/yyyy 00:00:00 如:01/01/2015 00:00:002 y/ \4 S! C% I! o1 x5 p9 |
修改主题模板:
© 懒人资源 | CITYED.CN 4 @: q f0 D# l( e0 C编辑当前使用的wordpress模板,修改文章主循环代码:
© https://www.cityed.cn 9 E- Y6 q# x$ B. A: I- <?php
© www.cityed.cn 7 c( t" z6 N* p( `/ h0 `" H) P - if (have_posts()) :
4 \. N/ G. r. l# P6 N - while (have_posts()) : the_post();
© 懒人资源 ( Y7 L+ Z* }& R. e$ t - $expirationtime = get_post_custom_values('expiration');
© 懒人资源 1 V q! `6 R" j$ l6 C- _5 C - if (is_array($expirationtime)) {- S5 E! H7 V. A) z9 N, G. Z3 w © CITYED.CN 版权所有
- $expirestring = implode($expirationtime);3 ]/ K. K. X' }$ B) f' v © 懒人资源
- }
© 懒人资源 | cityed.cn 7 [) z7 t$ P# f: A F7 w5 _5 G: v - $secondsbetween = strtotime($expirestring)-time();
© cityed.cn 9 }4 w; m& b) s% l$ L, { - if ( $secondsbetween > 0 ) {
© 懒人资源 | cityed.cn 0 N8 P& l- C$ c t0 E- n - ?>
© 懒人资源 | CITYED.CN , ?) w! j/ P2 y4 R2 t - <div class="post" id="post-<?php the_ID();?>">
© https://cityed.cn 0 H8 ]- G& u, R0 N3 l/ j6 E* v - <h2><?php the_title();?></h2>1 S! y( p: B5 ^& x# h4 A. w9 ? © 懒人资源
- <div class="entry">- i3 E; K. n+ Q! Z r# ^* i- q © 懒人资源 | cityed.cn
- <?php the_excerpt();?>
© 懒人资源 | CITYED.CN , R* j. O6 q- M5 q* r/ z/ ~ - </div>' K- b; |9 l# |. |4 h( J/ K/ Y
- </div>7 l: x# A) V' [: }- X2 S. `
- <?php% {9 F8 B- u" ]4 f8 E, U6 X+ g+ K © 懒人资源
- }
© 懒人资源 * J# t* Y; h5 ^* @% P. r - endwhile;
© 懒人资源 | cityed.cn 0 d# o0 q' h! ? i, K - endif;. w% F5 d# b2 }* ] © 懒人资源 | CITYED.CN
- ?>
复制代码
© 懒人资源 , G0 T/ ~" a4 u: H( m8 w上面代码的作用是如果当前时间超过设定的时间,文章则不显示。) d# K% R, M. \+ j; W. y0 V © https://cityed.cn
编辑当前使用的主题模板,修改文章主循环代码:( z3 E4 ~+ C5 L% @7 g$ c © cityed.cn
- <?php) G8 e. }# j9 Y! r5 l © https://www.cityed.cn
- if (have_posts()) :
© https://www.cityed.cn 4 t5 M+ R0 b9 d4 n - while (have_posts()) : the_post(); 8 N6 O4 N( p/ o. B- O7 G © 懒人资源
- ?># L8 i7 C$ f$ _# ] © https://cityed.cn
- <div class="post" id="post-<?php the_ID();?>">
© CITYED.CN 版权所有 % c/ W" i/ K, s9 s7 d6 C( i - <h2><?php the_title();?></h2>
© 懒人资源 | CITYED.CN 4 u& y" H J8 ? - <div class="entry">( ]4 }* V6 v# w1 J" Q- X4 | ~
- <?php the_excerpt();?>
© 懒人资源 | CITYED.CN & p6 U* G* J5 N# N - <?php 2 n' s7 B5 f7 x4 |0 N, ?+ j © https://cityed.cn
- $expirationtime = get_post_custom_values('expiration');3 c) z P2 h+ e# D9 i © CITYED.CN 版权所有
- if (is_array($expirationtime)) {- S& Q- ]' Q5 Z3 q+ E0 M © cityed.cn
- $expirestring = implode($expirationtime);# ]- Y" i$ g, Y: C# }) L
- }! e3 c8 i7 _+ A3 r4 D © https://cityed.cn
- $secondsbetween = strtotime($expirestring)-time();
© 懒人资源 $ U3 y$ x* _' r7 }0 @: M# }7 b - if ( $secondsbetween > 0 ) {
© https://cityed.cn ' c8 F3 i; j2 P: C - echo '进行中';" F; ~9 Y% O1 ~ V- N5 y ? © https://www.cityed.cn
- }else {
© https://cityed.cn / Y P; D/ G1 z% G" j7 ` - echo '已过期';& O V) W0 a# V# H$ F3 p3 u3 }0 q © 懒人资源 | cityed.cn
- }. G# k, n4 o7 ~- Z' f& R © https://cityed.cn
- ?>' r9 ]5 j5 ^, _9 `8 v$ V9 {. H9 ? © CITYED.CN 版权所有
- </div>) Y, o. c* q% w' r9 l. c © 懒人资源
- </div>( {; ?8 R* G& b) j. X
- <?php , G5 I& I: Q- q8 N- M © cityed.cn
- endwhile;
© https://cityed.cn % O( X( r' {5 g6 ]6 P X - endif;& _9 X% m( G3 |: P1 Q © https://www.cityed.cn
- ?>
复制代码 & h& n W- u+ J4 @ © cityed.cn
上面代码的作用是如果当前时尚没有超过设定的时间内容中就显示“进行中”,否则就显示“已过期”。
© https://www.cityed.cn 6 E, S( q+ d" a3 Q9 D3 p) U+ ^1 c L z) k © www.cityed.cn
|