此解决方案与其他解决方案的不同之处在于,中的主要工作是完成用户注册。用户注册后,计算总用户数,然后users_can_register
如有必要,将更新选项。这似乎是减少前端处理时间的最佳方法。连接到的相关函数pre_option_users_can_register
通过在“常规设置”中切换开关并获得额外用户,防止博客管理员作弊。从技术上讲,只有该功能是必要的,但我已经解释了其他功能的原因。
function count_reg_users_wpse_110036() {
global $wpdb;
$users = $wpdb->get_var("SELECT COUNT(ID) FROM {$wpdb->users}");
return $users;
}
function limit_users_wpse_110036() {
$count = apply_filters(\'limit_user_count\',4);
$users = count_reg_users_wpse_110036();
if ($users >= $count) {
update_option(\'users_can_register\',0);
}
}
add_action(\'user_register\',\'limit_users_wpse_110036\');
function limit_user_option_wpse_110036($option) {
remove_filter(\'pre_option_users_can_register\',\'limit_user_option_wpse_110036\');
$reg = get_option(\'users_can_register\');
if (0 === $reg) {
return 0;
}
$count = apply_filters(\'limit_user_count\',4);
$users = count_reg_users_wpse_110036();
if ($users >= $count) {
update_option(\'users_can_register\',0);
return 0;
} else {
return $option;
}
}
add_filter(\'pre_option_users_can_register\',\'limit_user_option_wpse_110036\');