首页 > 解决方案 > 如何遍历数据库中的所有用户并应用角色

问题描述

我正在尝试创建一个循环,该循环遍历数据库中我的事件表中的每个用户数据,如果返回的行数是 12 的倍数,则应用挂起的角色。

这是我创建的,但它似乎不起作用;

<?php
    global $wpdb;

    for( $x = 1; $x < 300; $x++ ){
        $count = $wpdb->get_results( 'SELECT * FROM wp_events WHERE user_id = "'.$x.'"' ); 

        if ($count % 12 == 0){ 
            $user = new WP_User( $x );
            $user->add_role( 'suspended' );
        }
    }
?>

标签: phpwordpress

解决方案


该方法get_results返回一个数组。因此,您使用数组来计算模数,所以它总是会返回1

要解决此问题,您可以将条件更改为:

if (count($count) % 12 == 0) {
    // Your code...
}

欲了解更多信息:https ://developer.wordpress.org/reference/classes/wpdb/get_results/


推荐阅读