Замена логина администратора уже после установки блога

Во время установки WordPress в качестве имени пользователя(логина) нам предлагает выбрать admin.

Если вы читали мой блог, то уже убедились, что лучше не использовать ничего стандартного. Ведь тем самым мы упрощаем работу хакерам. Поэтому меняем admin на любой другой логин, который вам по душе.

А теперь для тех, у кого WordPress уже установлен:

Запустите этот SQL-запрос через phpMyAdmin, new поменяйте на желаемый логин, а wp_ — на текущий префикс базы данных.

UPDATE wp_users SET user_login='new' WHERE user_login='admin';

Как скрыть логин пользователя со страницы архивов?

Вот вы поменяли логин пользователя и вы уже спите спокойно, однако, попробуйте набрать у вас на блоге URL: /?author=1. Упс.

Как проще всего скрыть это безобразие? Проще всего добавить в functions.php следующий код, который при использовании этого урла, а также при переходе на страницу автора, будет кидать 404. Простая и красивая реализация.

function misha_404_author_archives() {
    // тут также можно задать допустим условие, что запрет будет только для архивов администратора блога
    if ( is_author() || ( isset( $_GET['author'] ) && $_GET['author'] && !is_admin()) ) {
 
        global $wp_query;
        $wp_query->set_404();
        status_header(404);
 
    } else {
 
        redirect_canonical();
 
    }
 
}
remove_filter('template_redirect', 'redirect_canonical');
add_action('template_redirect', 'misha_404_author_archives');

Как делаю я?

Сначала я меняю ID своего пользователя, мне не нравится, когда ID администратора всегда означает единицу! Делаю это SQL-запросом в phpMyAdmin.

UPDATE myprefix_users SET ID = 5555 WHERE ID = 1;
UPDATE myprefix_posts SET post_author = 5555 WHERE post_author = 1;
UPDATE myprefix_comments SET user_id = 5555 WHERE user_id = 1;
UPDATE myprefix_usermeta SET user_id = 5555 WHERE user_id = 1;
ALTER TABLE myprefix_users AUTO_INCREMENT = 5556

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

Теперь мне уже легче, однако, хоть это и добавляет напряга «взломщику», он всё ещё может подобрать мой ID и выяснить логин через ?author=5555.

Вторым шагом, избавляюсь от этой страницы вообще (обратите внимание, что у меня включены постоянные ссылки). Отправляю следующий код в .htaccess в корне сайта после RewriteEngine On и перед RewriteBase /.

RewriteCond %{REQUEST_URI} !^/wp-admin [NC]
RewriteCond %{QUERY_STRING} author=d
RewriteRule ^ /? [L,R=301]

Отлично! Последний шаг — эта сама страница архивов /author/mishinlogin. Тут тоже логина быть не должно. В админ панели почему-то не предусмотрели это и поменять можно тоже только через базу данных. Запросом:

UPDATE myprefix_users SET user_nicename = 'Misha' WHERE ID = 5555;

Очищаем все кэши, обновляем постоянные ссылки и всё должно быть ок! Преимущество моего решения в том, что мы не добавили ни строчки кода в нашу тему, которые возможно бы и не сказались на производительности сайта, но всё же. Я в таких вещах перфекционист.

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: