Intereting Posts
Плагин Добавляет уродливую строку url в индекс Почему переменная работает на первой странице, но возвращает NULL на всех других страницах? Многоузловое доменное отображение разбивает CSS Страница пользовательского поиска и поиск по названию, содержанию и тегу Перенаправление при доступе / регистрации при входе в систему BuddyPress пользовательская структура url, любой знает фильтр для bp_core_get_userlink Раздвижные страницы + wordpress значение метаданных является неправильным использованием оператора if Пользовательские сортируемые мета-ящики FB Комментарии поле для печати на стену? Создание формы онлайн-анкеты – путем импорта вопросов из электронной таблицы? Как получить более 25 предметов через RSS-каналы Simplepie? Лучший способ получить несколько ссылок в заголовке сообщения Мне нужно использовать месяц, год в моих архивах и страницах моего сайта wordpress WP 4.5 скрывает основные разделы

Массовое удаление спам-аккаунтов

Боты так медленно поглощают наше существование, и даже величайший капчу или охранник терпят неудачу в очках. Это может привести к большому количеству спам-аккаунтов, которые необходимо удалить.

Удаление их вручную с помощью wp-admin является болезненным. Любой способ быстро удалить их?

Solutions Collecting From Web of "Массовое удаление спам-аккаунтов"

Да. Существует множество способов сделать это, прежде всего, нам нужно будет решить функцию wp_delete_user () .

Ваша первая задача и сложная задача – идентифицировать, какие учетные записи являются спамом, и которые являются реальными. Это может быть довольно приключением, если ваш сайт регулярно получает новых пользователей.

В следующем примере мы нацеливаем два значения: email запись email пользователя и meta_data .

В этом случае у нас есть идея, если это учетная запись спама, интерпретируя адрес электронной почты. Итак, добавим список в массив:

 $emails = array( 'mail@stackexchange.com', 'spam@spam.com', 'mail@ma.tt', ); 

Затем у нас есть пользовательские метаданные с именами:

 $meta_key = 'points'; 

И в нашем случае мы знаем, что если значение мета-ключа равно 10 , то это определенно является пользователем спама. Поэтому мы устанавливаем значение:

 $meta_key = 10; 

Теперь давайте объединим его в функцию:

 function wpse_delete_users_by_email($emails, $meta_key, $meta_value) { if (!is_array($emails)) return; foreach ($emails as $email) { // get user data via email $user = get_user_by( 'email', $email ); $user_id = $user->ID; $user_email = $user->user_email; // get $meta_data = get_user_meta($user_id, $meta_key, TRUE); // if meta data equals the meta value if ($meta_data == $meta_value) { // confirm that emails match if ($user_email == $email) { // must include this, or it will throw a 'call to undefined function' error require_once(ABSPATH.'wp-admin/includes/user.php' ); // delete spam user wp_delete_user( $user_id ); // display results echo '<br>' . $email; } } } } по function wpse_delete_users_by_email($emails, $meta_key, $meta_value) { if (!is_array($emails)) return; foreach ($emails as $email) { // get user data via email $user = get_user_by( 'email', $email ); $user_id = $user->ID; $user_email = $user->user_email; // get $meta_data = get_user_meta($user_id, $meta_key, TRUE); // if meta data equals the meta value if ($meta_data == $meta_value) { // confirm that emails match if ($user_email == $email) { // must include this, or it will throw a 'call to undefined function' error require_once(ABSPATH.'wp-admin/includes/user.php' ); // delete spam user wp_delete_user( $user_id ); // display results echo '<br>' . $email; } } } } 

Простые вещи, но иногда при работе со спамом и ботами, одна меньшая головная боль может быть ценной.