Поддержка Проблемы и решения Убрать site.ru/author/admin

  • Решено frozen92

    (@frozen92)


    Использую WordPress 3.8.1 с темой оформления Twenty Twelve.

    Когда искал свой сайт через поисковики то заметил, что у меня есть страничка, на которой отображается мой логин для входа в WordPress плана site.ru/author/»логин». Гуглил как можно убрать эту страничку, но так ничего и не нашел.
    При удалении файла author.php страница становится пустой, но все ещё доступна по заданному адресу. Ежели я захочу зайти на /author/1234 то мне ответят что такая страница не найдена — хотелось бы сделать аналогичное.

    В постах имя опубликовавшего их не отображается, возможно давно сам убрал — уже не помню.

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Так у Вас по ходу дела имя автора блога совпадает с логином. Верно?

    Имя пользователя wordpress у меня, предположим, XXX, а никнейм admin.
    То есть — я захожу на страницу site.ru/author/XXX и вижу публикации от имени admin.
    Но мне бы вообще уничтожить эту страницу — разве так важно какое у меня имя блога и логин?

    При удалении файла author.php страница становится пустой, но все ещё доступна по заданному адресу.

    адрес можно удалить через гугл-мастер

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Ежели я захочу зайти на /author/1234 то мне ответят что такая страница не найдена — хотелось бы сделать аналогичное.

    Можно добавить фрагмент в functions.php активной темы:

    function disable_author_archives() {
    	if ( is_author() ) {
    		$GLOBALS['wp_query']->set_404();
    	}
    }
    add_action( 'template_redirect', 'disable_author_archives' );

    Или пару строк в .htaccess перед правилами WordPress:

    RewriteEngine On
    RewriteRule ^author/ - [R=404,L]

    Даже если предположить что можно это не очень мне поможет, так как если вбить в адресную строку site.ru/?author=1 то я снова попаду на author/XXX что опять выдаст мой логин.

    Sergey Biryukov

    При добавлении

    function disable_author_archives() {
    	if ( is_author() ) {
    		$GLOBALS['wp_query']->set_404();
    	}
    }
    add_action( 'template_redirect', 'disable_author_archives' );

    исчезают все написанные посты и сайт говорит мне что такой информации не существует, НО если прописать site.ru/?author=1 то я снова попаду на author/XXX, который будет без информации.

    При редактировании .htaccess я даже на site./author зайти не могу, НО если прописать site.ru/?author=1 то я снова попаду на author/XXX, где мне скажут 404 not found.

    Проблема состоит в том, что я всё-равно засвечу свой логин, записи от своего имени мне не так важны.

    Проблема решена
    Сменил в базе данныx MySQL значение user_nicename с XXX на admin.
    Теперь если вводить site.ru/?author=1 то будешь переадресовывать на site.ru/author/admin, что не является логином для wordpress.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    если прописать site.ru/?author=1 то я снова попаду на author/XXX

    Перенаправления можно избежать, используя более раннее действие wp вместо template_redirect:

    function disable_author_archives() {
    	if ( is_author() ) {
    		$GLOBALS['wp_query']->set_404();
    	}
    }
    add_action( 'wp', 'disable_author_archives' );

    Стоит заметить, что логин в WordPress не считается секретной информацией, лучше позаботиться о надёжном пароле (от 24 символов, с цифрами и спецсимволами).

    Спасибо — помогло, теперь не переадресовывает.
    Логин по вашему совету сделал длиннее :3

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «Убрать site.ru/author/admin» закрыта для новых ответов.