要实现 WordPress 默认将文章定时发布设置为当天 00:00,而非即时发布,我们需要创建一个小插件。这可以通过 WordPress 的 save_post
钩子来实现,该钩子在文章保存时触发。我们可以使用这个钩子来修改文章的发布时间。
下面是一个简单的示例插件,展示了如何实现这一目标:
- 创建插件文件
在你的 WordPress 安装的 wp-content/plugins
目录下创建一个文件夹,例如 scheduled-publish-00-00
。然后在该文件夹内创建一个文件,例如 scheduled-publish-00-00.php
。
- 编辑插件文件
在 scheduled-publish-00-00.php
文件中添加以下代码:
<?php
/*
Plugin Name: Scheduled Publish at 00:00
Description: Automatically schedules posts to be published at 00:00 on the same day.
Version: 1.0
Author: Your Name
*/
function schedule_post_at_midnight($post_id) {
// Check if this is a revision or an auto-save
if (wp_is_post_revision($post_id) || defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
// Get the post type
$post_type = get_post_type($post_id);
// We only want to modify posts
if ($post_type !== 'post') {
return;
}
// Get the current time
$current_time = current_time('timestamp');
// Get the current date at 00:00
$midnight = strtotime('today midnight', $current_time);
// Schedule the post if it is not already scheduled
if (get_post_status($post_id) !== 'future') {
wp_update_post(array(
'ID' => $post_id,
'post_date' => date('Y-m-d H:i:s', $midnight),
'post_date_gmt' => gmdate('Y-m-d H:i:s', $midnight),
'post_status' => 'future'
));
}
}
add_action('save_post', 'schedule_post_at_midnight');
- 激活插件
登录到你的 WordPress 管理后台,导航到 “插件” 页面,找到 “Scheduled Publish at 00:00” 插件并激活它。
代码解析:
- Plugin Header: 插件头部信息,包括名称、描述、版本和作者。
- schedule_post_at_midnight 函数: 这个函数将在每次保存文章时触发。它会检查当前是否是文章类型,并且当前文章是否不是修订版本或自动保存。如果满足条件,它会将文章的发布时间设置为当天的00:00,并将文章状态设为”future”(未来发布)。
- add_action(‘save_post’, ‘schedule_post_at_midnight’): 通过
save_post
钩子将schedule_post_at_midnight
函数与文章保存操作关联起来。
注意事项:
- 该插件会在每次保存文章时将其发布时间设置为当天的00:00。如果你有其他需要更精细控制的发布时间需求,可以根据实际情况修改逻辑。
- 确保服务器的时区设置正确,以避免发布时间不准确的问题。
这样,你的 WordPress 网站就会自动将新文章的发布时间设定为当天的00:00。