Wordpress Cron作业计划每分钟运行一次,而不是每天运行一次
我创建了一些运行cron作业的代码,以查看是否满足我分配给我的帖子(自定义字段)的到期日期。如果是,它会将状态更改为“草稿” 我的日程安排出了问题,因为cron作业每分钟都在排队,我想我分配给它每天运行一次 非常感谢您的帮助Wordpress Cron作业计划每分钟运行一次,而不是每天运行一次,wordpress,Wordpress,我创建了一些运行cron作业的代码,以查看是否满足我分配给我的帖子(自定义字段)的到期日期。如果是,它会将状态更改为“草稿” 我的日程安排出了问题,因为cron作业每分钟都在排队,我想我分配给它每天运行一次 非常感谢您的帮助 function cronstarter_activation() { if( !wp_next_scheduled("katie-posts-cron-job")) { wp_schedule_ev
function cronstarter_activation()
{
if( !wp_next_scheduled("katie-posts-cron-job"))
{
wp_schedule_event (time(), "daily", "katie-posts-cronjob");
}
}
add_action("wp", "cronstarter_activation");
function cronstarter_deactivate()
{
$timestamp = wp_next_scheduled ("katie-posts-cronjob");
wp_unschedule_event ($timestamp, "katie-posts-cronjob");
}
register_deactivation_hook (__FILE__, "cronstarter_deactivate");
function cron_add_timer($schedules)
{
$schedules["everyday"] = array(
'interval' => 86400,
'display' => __("Once a Day")
);
return $schedules;
}
add_filter("cron_schedules", "cron_add_timer");
function prfx_custom_meta()
{
add_meta_box ("prfx_meta", __("katie Posts", "prfx-textdomain"), "prfx_meta_callback", "post", "normal", "high");
}
add_action ("add_meta_boxes", "prfx_custom_meta");
function prfx_admin_styles()
{
global $typenow;
if ($typenow == "post")
{
wp_enqueue_style ("prfx_meta_box_styles", plugin_dir_url( __FILE__ ) . "/css/meta-box-styles.css");
}
}
add_action ("admin_print_styles", "prfx_admin_styles");
function prfx_meta_callback($post)
{
wp_nonce_field (basename( __FILE__ ), "prfx_nonce");
$prfx_stored_meta = get_post_meta( $post->ID );
?>
<p>
<label for="meta-text" class="prfx-row-title"><?php _e("Post Expiry Date: ", "prfx-textdomain")?></label>
<input type="date" name="meta-text" id="meta-text" value="<?php if (isset ($prfx_stored_meta["meta-text"])) echo $prfx_stored_meta["meta-text"][0]; ?>" />
</p>
<?php
}
function prfx_meta_save($post_id)
{
$is_autosave = wp_is_post_autosave($post_id);
$is_revision = wp_is_post_revision($post_id);
$is_valid_nonce = (isset( $_POST[ 'prfx_nonce' ] ) && wp_verify_nonce( $_POST[ 'prfx_nonce' ], basename( __FILE__ ) ) ) ? 'true' : 'false';
if ($is_autosave || $is_revision || !$is_valid_nonce)
{
return;
}
if (isset($_POST["meta-text"]))
{
update_post_meta($post_id, "meta-text", sanitize_text_field($_POST["meta-text"]));
}
}
add_action ("save_post", "prfx_meta_save");
function katie_expired_posts()
{
$args = array ("post_type" => "post", "post_status" => "publish");
$post_query = new WP_Query($args);
if ($post_query->have_posts())
{
while($post_query->have_posts() )
{
$post_query->the_post();
$sExpiry = get_post_meta (get_the_ID(), "meta-text", true);
$sToday = date("Y-m-d");
if ( ($sExpiry <= $sToday) && ($sExpiry != "" ) )
{
$my_post = array ("ID" => get_the_ID(), "post_status" => "Draft",);
wp_update_post ($my_post);
}
}
}
}
add_action ("katie-posts-cronjob", "katie_expired_posts");
函数cronstarter\u激活()
{
如果(!wp_next_scheduled(“katie发布cron作业”))
{
wp_时间表_事件(时间(),“每日”,“凯蒂发布工作”);
}
}
添加行动(“wp”、“启动启动程序”);
函数cronstarter_deactivate()
{
$timestamp=wp_next_scheduled(“katie发布cronjob”);
wp_计划外事件($timestamp,“katie发布cronjob”);
}
寄存器\停用\挂钩(文件\停用,cronstarter \停用);
函数cron\u add\u计时器($schedules)
{
$schedules[“每日”]=数组(
“间隔”=>86400,
“显示”=>(一天一次)
);
返回$时间表;
}
添加过滤器(“cron_计划”、“cron_添加_计时器”);
函数prfx_custom_meta()
{
添加元框(“prfx元”、“katie Posts”、“prfx textdomain”)、“prfx元回调”、“post”、“normal”、“high”);
}
添加动作(“添加元数据框”、“prfx\u自定义元数据”);
函数prfx_admin_styles()
{
全球$typenow;
如果($typenow==“post”)
{
wp_enqueue_style(“prfx_meta_box_styles”,plugin_dir_url(uu FILE_u)。”/css/meta box styles.css);
}
}
添加动作(“管理打印样式”、“prfx管理样式”);
函数prfx_meta_回调($post)
{
wp_nonce_字段(basename(u_文件);“prfx_nonce”);
$prfx\u stored\u meta=get\u post\u meta($post->ID);
?>
您的计划命名不正确
见:
函数cronstarter\u激活()
{
如果(!wp_next_scheduled(“katie posts cron job”)//请发布实际的代码,而不是代码的图像。如果您使用hookadd_操作(“wp”、“cronstarter_激活”)在例如functions.php
中运行此操作;
。它将自动运行?在WP中开发时请阅读WP文档。请参阅:。在第一行中,它说明您需要访问站点以触发WP\u schedule\u event()
。如果不希望依赖站点访问,请在宿主环境中设置cronjob。
function cronstarter_activation()
{
if( !wp_next_scheduled("katie-posts-cron-job")) // <--- cron-job
{
wp_schedule_event (time(), "daily", "katie-posts-cronjob"); // <--- cronjob
}
}