有没有办法安排对页面的更改?

时间:2017-10-06 作者:E. Jaep

我们的客户希望安排对给定page (例如,通过显示注册到事件的链接)。

通常,应(在注册打开之前)显示相同的页面(/注册):“注册将由…打开”

一旦时机成熟,同一页面应显示:“通过单击此链接注册…”

我尝试按照以下步骤操作,但无济于事:https://en.support.wordpress.com/schedule-a-page/

有没有办法将草稿版本自动发布到两个版本(或修订版-一个发布,一个作为草稿)?

或者让两个不同的页面共享相同的url(一个发布到给定日期,另一个在第一个页面未发布后立即发布)?

最好不要让开发人员每次更改页面上的文本位时都参与此过程。

提前感谢

3 个回复
SO网友:mmm

您可以使用这样的短代码来完成此操作

add_shortcode("custom_text_se282078", function ($attr, $content, $tag) {

    $result = "";

    if (date_i18n("H") > $attr["time"]) {
        $result = $attr["text_after"];
    } else {
        $result = $attr["text_before"];
    }

    return $result;

});
因此,您只需在页面中输入:

[自定义\\u text\\u se282078 time=“10”text\\u before=“10小时前的文本”text\\u after=“10小时后的文本”]

SO网友:E. Jaep

基于@mmm answer,我的代码如下所示:

extract(shortcode_atts(array(
    \'start\' => \'\'
), $attributes));

extract(shortcode_atts(array(
    \'end\' => \'\'
), $attributes));

if (($start_timestamp = strtotime($start)) === false) {
    $error = new WP_Error(\'unable to parse\', \'Unable to parse start timestamp\', $start);
    scheduler_log($error);
    return \'\';
}

if (($end_timestamp = strtotime($end)) === false) {
    $error = new WP_Error(\'unable to parse\', \'Unable to parse end timestamp\', $end);
    scheduler_log($error);
    return \'\';
}

date_default_timezone_set("Europe/Zurich");
$now = strtotime("now");

if($now>=$start_timestamp && $now<=$end_timestamp){
    return $content;
}
else{
    return \'\';
}

SO网友:Daniel J. Mount

如果您想要一个非基于短码的解决方案,免费修订插件提供以下功能:https://wordpress.org/plugins/revisionary/

有一点很重要:这个插件已经好几年没有更新了。我过去用过它,而且过去效果很好。然而,我不知道它是否仍在积极开发中。

结束

相关推荐

自定义终结点和X-WP-TotalPages(标题)

我有一个自定义端点定义如下: add_action( \'rest_api_init\', function () { register_rest_route( \'menc/v1\', \'/crosscat/(?P<dept>[\\w-]+)/(?P<cat>[\\w-]+)\', array( \'methods\' => \'GET\', \'callback\' =>