如果post_meta字段为0,是否可以将帖子移至另一个类别?
我正在建立反向订单投票,每个帖子默认情况下都有10票,用户投票后,通过更新post_meta来删除一票,现在我尝试将帖子移至另一个类别,如果投票字段为0或2天老的。

我找到了解决方案 这里 如果是数据库中的过去日期,则将帖子移至另一个类别。
它每小时运行一次进行检查

if (!wp_next_scheduled('sfn_expire_hook')){
    wp_schedule_event( time(), 'hourly', 'sfn_expire_hook');
}

add_action( 'sfn_expire_hook', 'sfn_show_expire');
function sfn_show_expire(){
    global $wpdb;
    $server_time = date('mdy');
    $result = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish'");
    if( !empty($result)) foreach ($result as $a){
        $show_time = get_the_time('mdy', $a->ID);
        if ( $server_time > $show_time ){
           $my_post = array();
           $my_post['ID'] = $a->ID;
           $my_post['post_status'] = 'draft';
           wp_update_post( $my_post );
        }
    } // end foreach
}

有人可以帮助我扩展它以检查2天的帖子,如果post_meta“投票”也是“ 0”?

多谢,
菲利普

有帮助吗?

解决方案

当您删除投票检查您的状况时,请在需要时:

  1. 获取类别 wp_get_object_terms() (低级别的函数,您只能为此指定以获取名称或ID,因为您不需要完整的对象)
  2. 修改阵列(删除您不需要的类别,添加您执行的类别)
  3. 设置类别 wp_set_post_categories() (它将覆盖所有类别,因此您从数组中删除的类别将消失)
许可以下: CC-BY-SA归因
scroll top