我可以安排我的网站在设定的时间和日期上线吗?

时间:2020-11-06 作者:Jaq Slade

或者必须启动站点manually?

为了纪念我已故叔叔的二战经历,我希望我的网站launch 11月11日上午11点。

1 个回复
SO网友:bueltge

您应该创建一个检查时间戳的小插件,并在备用页面或类似页面上运行。如果大于时间戳,则默认WordPress运行应该有效。举个例子,写下我对这个问题的答案,这不是有效的代码。

方法timestamp 是控制加载备用启动页的逻辑的键。当前示例仅在日期为当前日期时加载备用页。因此,在这种方法中,您应该增强逻辑,例如现在小于加载启动器的定义日期。

WP环境中的负载

add_action(
    \'plugins_loaded\',
    static function (): bool {
        try {
            (new Alternate())
                ->set(__FILE__, \'2020-11-06\')
                ->run();
        } catch (Throwable $error) {
            if (defined(\'WP_DEBUG\') && WP_DEBUG) {
                throw $error;
            }

            return false;
        }

        return true;
    }
);
类来控制备用页
use DateTime;

class Alternate
{

    private $pluginurl;

    private $date;

    /**
     * @param string $root
     * @param string $date
     *
     * @return Alternate
     */
    public function set(string $root, string $date): self
    {
        $this->pluginroot = plugin_dir_path($root);
        $this->pluginurl = plugin_dir_url($root);
        $this->date = $date;

        return $this;
    }

    public function run()
    {
        // Load alternate page or WordPress loop.
        if ($this->timestamp()) {
            wp_cache_flush();
            header(\'Location: \'.$this->placeholderFile(), true, 302);
            exit();
        }
    }

    /**
     * @return string
     */
    private function placeholderFile(): string
    {
        if (file_exists($this->pluginroot.\'assets/placeholder.html\')) {
            return $this->pluginurl.\'assets/placeholder.html\';
        }

        return $this->pluginurl.\'assets/placeholder_en.html\';
    }

    private function timestamp(): bool
    {
        return $this->date === (new DateTime())->format(\'Y-m-d\');
    }

}
类似的工作插件this solution, 在一个不确定的日期上翻开一页。

请注意,我的意思是,它也为这个目标提供了免费插件。也许你会搜索它们。我脑子里没有这个插件,但可能是插件;“维护模式”;应具有此选项。

相关推荐

Problem With Pages Displaying

除了我叔叔的主页显示之外,我的任何页面都有问题。该站点最近已从一台主机迁移到另一台主机。所有页面都显示在WP后端,并且都已格式化,所有内容都在那里,但当我单击菜单链接时,会出现错误404。我创建了一个测试页面来查看新页面发生了什么。它工作并显示为预览,但在我发布后,同样的事情发生了,错误404。该网站是www.andyvalvur。com上托管,来自Inmotion托管。有什么想法吗?我感谢你所能提供的一切帮助。