1ответ(ов) в теме
Всем привет!
Для buddypress есть плагин, который отображает статус онлайна пользователей, вот его кусок кода:
function update_online_users_status() { if ( is_user_logged_in() ) { if ( ( $logged_in_users = get_transient( 'online' ) ) === false ) $logged_in_users = array(); $current_user = wp_get_current_user(); $current_user = $current_user->ID; $current_time = current_time( 'timestamp' ); if ( !isset( $logged_in_users[$current_user] ) || ( $logged_in_users[$current_user] < ( $current_time - ( 5 * 60 ) ) ) ) { $logged_in_users[$current_user] = $current_time; set_transient( 'online', $logged_in_users, 30 * 60 ); } } } add_action( 'wp', 'update_online_users_status' ); function is_user_online( $user_id ) { $logged_in_users = get_transient( 'online' ); return isset( $logged_in_users[$user_id] ) && ( $logged_in_users[$user_id] > ( current_time( 'timestamp' ) - ( 5 * 60 ) ) ); }
суть в том, что создается временная опция, куда записываются таймкоды пользователей в массив
Вопрос в следующем:
Если пользователей больше 1000, будет ли нагрузка на сайт при получении get_transient
для каждого пользователя?
И сколько лучше устанавливать времени к set_transient
для удаления этой временной опции?
Вы не имеете права на публикацию сообщений в этой теме