有没有办法让页面内容的大块过期?

时间:2016-10-24 作者:jonbon

我在我的网站上有一个页面,在那里我发布了折扣商品。然而,每种商品的折扣在某个日期结束。在该日期之后,我不想再看到该项目。但我不想每天都更新页面。有没有一种方法可以让WordPress自动删除标签中的内容块?

或者,最好创建一个自定义帖子类型,并显示指向此页面上帖子的链接,然后将自定义帖子类型设置为以某种方式过期?

1 个回复
SO网友:jgraup

如果您不介意将内容包装在Shortcode 然后,您可以很容易地在特定时间后将其隐藏起来。允许您缓存页面的时间不会超过需要的时间。

将内容包装到[content_expires] 短代码。时间应基于服务器的时区。

[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]
然后添加短代码处理程序。

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\' );
现在,仅当内容未达到指定日期时,才会呈现内容。