如果META_KEY的META_VALUE小于今天的日期,则更新META KEY

时间:2018-02-26 作者:Nitish Paswan

我有一些自定义字段的自定义帖子类型。“日期”字段和“状态”字段就是其中之一。

这里我试图根据“日期”字段与当前日期的比较来更新“状态”字段的meta\\u值。

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

更新时间:2018年2月28日,因为你需要更新特定分类法中的所有帖子,所以听起来你需要了解如何更新WP_Query() 作品

这里有一个简单的循环让您开始,它将获取Taxononomy中的所有帖子,如果<“em>现在晚于当时”;满足条件。

$nitish_args = array(
    \'post_type\' => \'post\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'YOUR TAXONOMY HERE\',
        ),
    ),
);

$nitish_query = new WP_Query( $nitish_args );

if( $nitish_query->have_posts() ){
    // Get "current" unix timestamp
    $now = time();

    while( $nitish_query->have_posts() ){
        $nitish_query->the_post();

        // Get "date" meta field as unix timestamp
        $then = strtotime( get_post_meta( $post->ID, \'date\', true ) );
        
        if( $now > $then ){
            // $now is later than $then, update post.
            update_post_meta( $post->ID, \'status\', \'NEW VALUE\' );
        }
    }
    wp_reset_postdata();
}
听起来像是一个简单的if条件。您可以在以下服务器上运行此操作:

Cron发布视图(添加到single.php或使用is_singular()is_single() 函数中的函数。php)

  • 更新后使用save_post() WP\\U查询或存档模板循环中的操作
  • 值得怀疑,但即使在任何时候加载站点(直接在functions.php中-不太可能,但这可能取决于您需要完成什么)
    • 这确实取决于您的需要,但这里有一些东西可以让您开始:

      // Get "date" meta field as unix timestamp
      $then = strtotime( get_post_meta( $post_id, \'date\', true ) );
      
      // Get "current" unix timestamp
      $now = time();
      
      if( $now > $then ){
          // $now is later than $then, update post.
          update_post_meta( $post_id, \'status\', \'NEW VALUE\' );
      }
      
      基本上,您只需要获取date 字段,将其与当前unix时间戳进行比较time() 函数,然后查看;“现在”;大于;然后是“;,如果有,请更新帖子。

    结束

    相关推荐