如何在WP_USER_QUERY中使用瞬变

时间:2016-06-17 作者:kiarashi

资料来源:How to check if a user (not current user) is logged in?

我用的是transient 这是在用户登录时创建的。

$logged_in_users = get_transient(\'users_online\');
现在我想创建一个额外的函数,列出当前在线的所有用户。

到目前为止我的代码。。。

function wp_current_online_users(){

    $logged_in_users = get_transient(\'users_online\');


    $args = array(
        \'orderby\'   =>  \'display_name\',
        \'order\'     =>  \'ASC\',
    );

    $user_query = new WP_User_Query( $args );

    // User Loop
    if ( ! empty( $user_query->results ) ) {

        foreach ( $user_query->results as $user ) {         
            $avatar = get_avatar( $user->ID, 40 );              
            echo \'<span class="wp-user-\'.$user->display_name.\'">\' . $avatar . \' </span>\';               
        }

    } else {
        esc_html_e(\'There are currently no users logged in.\', \'text-domain\');
    }       

}
如何实现transients 内部query 这样它将只显示在线用户?

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

查看引用的答案存储users_online 作为按用户ID索引的时间戳数组,可以使用include argument for WP_User_Query:

$args = array(
    \'include\' => array_keys( $logged_in_users ),
    // Other arguments
);

相关推荐

如何从USERS-edit.php中删除颜色选择器代码

我知道我不应该改变Wordpress的核心。但如果我想在“用户编辑”中使用仪表板用户配置文件页面。php和删除大块代码(如颜色选择器)的方法。从第259行到第336行-我想全部删除。<?php if ( ! ( IS_PROFILE_PAGE && ! $user_can_edit ) ) : ?> <tr class="user-rich-editing-wrap"> <th scope="