所以这个问题似乎不清楚,我重写了它,希望是最好的,并得到一些好主意。
我写了一篇WordPress的贴子(总是第一个在上面)。在那篇博文中有这样一句话:行动迅速,报名参加下一节课。下次日期:2012年9月10日。
但随着时间的推移,日期会发生变化,为了保持当前日期不变,日期必须发生变化。因此,我可以把一个日期列表,并根据今天日期的下一个日期自动更改发布日期(文本)。。。
什么php代码插件可以做到这一点。。。我认为shortcode可以做到这一点,但您的解决方法是什么?
--日期列表示例:
2012年9月10日-2012年9月30日-2012年10月5日-2012年10月22日-基于这个例子,假设今天是10月1日,所以我喜欢这篇帖子:行动迅速,报名参加下一节课。下次日期:2012年10月5日。因此,日期列表会忽略过去的日期(推迟课程完成),并根据今天的日期显示下一个日期,并让人们知道。。。快点,要么很快,要么永远不会。我知道会有其他日期,但客户不必知道!
<小时>Editors note: 为了澄清,这里有一个简短的解释OP的要求。
帖子有多个“日期”每个日期代表帖子内容的变化当一个日期过去时,模板应该自动生成。认识到这一点并切换内容免责声明:这就是我所理解的
最合适的回答,由SO网友:kaiser 整理而成
下面总结了您需要做的事情:
获取meta box library.添加带有日期的自定义字段将筛选器回调操作附加到the_content
筛选获取当前日期,检查自定义字段,在内容中附加日期这里是过滤器回调,它允许您附加您的;下一个日期:
function wpse66615_date_to_content( $content )
{
$dates[] = get_meta_custom( get_the_ID(), \'THE_KEY/NAME_YOU_ADDED\', true );
$dates[] = get_meta_custom( get_the_ID(), \'ANOTHER_KEY/NAME_YOU_ADDED\', true );
// $date_c = ...
// We need the current time to compare (UNIX timestamp)
$today = current_time( \'timestamp\' );
foreach ( $dates as $key => $date )
{
// Now get rid of all dates that already passed
if ( $today > strtotime( $date ) )
unset( $dates[ $key ] );
}
// We really ran out of dates...
empty( $dates ) AND $dates[] = \'There is really no date left\';
// Then take the first array item from our left dates
$next_date = array_shift( $dates );
// Then we append it to the content
return $content."<br /><strong>Next date:</strong> ".$next_date;
}
add_filter( \'the_content\', \'wpse66615_date_to_content\' );
当你现在打电话的时候
the_content();
或
apply_filters( \'the_content\', get_the_content() );
, 然后会得到如下输出:
Lorem ipsum dolor sit amet,consetetur sadipscing elitr,sed diam nonumy eirmod tempor invidunt ut laboure et dolore magna aliquyam erat,sed diam voluptua。在vero eos和accusam以及justo duo dolores和ea rebum。
Next date: d-m-Y