在我的PHP代码中看不到错误,需要新的眼光

时间:2015-08-22 21:37:31

标签: php post time

对于有PHP经验的人来说,这应该是小菜一碟。 我的代码和问题出了问题。在盯着/调整它2天后,我无法看到错误。

检查下面的更新!

  • 这假设在设置时间结束时更改帖子状态 ($ draft_to_deleted_delay)。
  • 问题:未更改帖子状态

  • 我认为问题在于状态更改代码或日期格式在比较中不兼容但我对PHP不太好 然而&不确定。

  • 这一切都包含在函数中,用WP cron调用 - cron工作,用插件检查。

  • 没有错误!

所有代码:

result.xlsx

更新

现在一切都很好,代码也会更新!

  • 为什么这不起作用的主要原因,令人惊讶的是40多人没有注意到:">"面对错误的方式。
  • 发布状态更改错误。

当你感到非常疲倦时,不要编程。

2 个答案:

答案 0 :(得分:1)

我从来没有使用/使用过Wordpress,所以不能用任何方面的指导 - 但你所描述的似乎是数据库能够并且应该能够使用事件轻松处理的东西。 可以将事件视为Windows中的“计划任务”。

数据库中的'事件'的基本示例(mySql等)。 您可能需要look at this

create event `evUpdateDraftStatus`
    on schedule
        every '1' day_hour starts '2015-08-22'
    on completion preserve
    enable
    comment 'every 1 hour(s) call a stored procedure that processes Drafts.'
    do call spUpdateDrafts()

要在db中启用事件,请运行此cmd:SET GLOBAL event_scheduler = ON;

See the reference for more info

事件调用的存储过程的基本示例。

create procedure `spUpdateDrafts`( IN `param_days` INT )
    language sql
    not deterministic
    contains sql
    sql security definer
    comment 'Update drafts'

begin
    /* Perform sql operations, for example: */
    declare days integer default 0;
    set @days=cast(param_days as unsigned);

    update `table` set `draftstatus`=0 
        where `draftstatus`=1 and timestampdiff( day, `draft_created_date`, now() ) > @days;
end

答案 1 :(得分:1)

检查了一些文档(...),这行看起来很可疑(循环指针改变,不返回任何内容):

$this_post = $unpublished_posts->the_post();

我想你想要get_post()或者......我只想打电话:

wp_update_post(array('ID' => get_the_ID(), 'post_status' => 'pending'));

此函数将使用get_post(ID)收集当前数据并进行合并。