更新POST_DATE的SQL查询(一个POST=一个日期和时间)

时间:2013-07-09 作者:chris

我已经为我的wordpress博客准备了120篇一类的帖子。目前,帖子是草稿,我不想手动安排。

我想这样发布它们:

从2013年8月1日起,每天4篇文章,时间为上午10点/下午2点/下午5点/下午8:30,我需要的是SQL查询:

120篇文章的更新日期,根据上述需求,将“草稿”模式更改为“待定”,发布顺序基于文章的创建日期:较早的将是第一次发布

非常感谢,

克里斯

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

我不会用SQL这样做。一个相对简单的PHP循环应该可以工作。

function bulk_schedule_posts_wpse_105834() {
  $args = (
    array(
      \'cat\' => 1,
      \'posts_per_page\' => -1,
      \'post_status\' => \'draft\',
      \'post_type\' => \'post\',
    )
  );
  $posts = new WP_Query($args);
  if (!$posts->have_posts()) return false;

  $date = \'2013-08-01\';
  $times = array(
    \'10:00\',
    \'14:00\',
    \'17:00\',
    \'20:30\'
  );

  while ($posts->have_posts()) {

    global $post;
    $posts->the_post();

    if (0 !== $posts->current_post && 0 === $posts->current_post%4) {
      $date = date(\'Y-m-d\',strtotime(\'+1 day\',strtotime($date)));
    }

    $thisdate = $date.\' \'.$times[$posts->current_post%4].\':00\';
    $date_gmt = get_gmt_from_date($thisdate);
    $post->edit_date = true;
    $post->post_date = $thisdate;
    $post->post_date_gmt = $date_gmt;
    $post->post_status = \'future\';

    wp_update_post($post);
  }
}
bulk_schedule_posts_wpse_105834();
Run that function once and then remove it.

你所做的事是相当危险的。在现场使用之前,对虚拟数据进行彻底测试。我认为它实际上不应该破坏太多数据,但它可能会造成一片混乱。

几乎未经测试。可能是马车。买主注意事项。不退款。

结束

相关推荐

并发/并发MySQL连接

我一直在寻找最好的WordPress主机,我想知道WordPress一次需要多少MySQL连接?我知道这是一个普遍的问题,但你觉得怎么样?我将主持大约3-5次WordPress安装,每个安装每月将有大约80000次页面浏览量(每月约20000个独立用户)。我想知道30个并发连接是否足够?因为大多数托管公司(我还负担不起VPS)将这些连接限制在25或30个。您能否共享您的WP唯一用户/页面视图以及它们生成的并发连接数?30听起来很低,但有人告诉我,要超过它根本不那么容易。我知道这取决于主题等,但假设我将使用