WordPress как на ладони

Как закрыть страницу архива автора? (тема 2, продолжение)

в теме вроде бы найдены варианты исправления косяка, однако есть еще один:

если перейти по адресу /?author=1 , и если переданный id автора (1) существует, то идет редирект на страницу /author/admin где admin - реальный ник автора. используя твой код (из ссылки выше) эта страница конечно отдаст 404 страницу, НО если перейти по /?author=11478317 - такого id не существует, то и редиректа не будет.

вот такое палево опять.

можно ли это решить на уровне function.php, или уже только на сервере редирект ставить до правил rewrite rule?

пс.

помогает
remove_filter( 'template_redirect', 'redirect_canonical' );
но скорее всего это нельзя использовать, тк отключается еще и куча полезных вещей

Заметки к вопросу:
Kama 7.1 год назад

Проверил на тестовом сайте - нет никаких редиректов /?author=1 отдает 404 страницу... Может ВП старый или что-то еще... Может SEO плагин шалит и можно отключить такой редирект?..

0
Гость
7.1 год назад
  • 0
    kolshix779 paxtoy.com

    Я пользуюсь этим, и у меня нет редиректа и прочего - и все работает и нет ложных ошибок 404 (404 как раз были допилены Тимуром )

    add_action( 'pre_handle_404', 'remove_author_pages_page' );
    add_filter( 'author_link', 'remove_author_pages_link' );
    
    // Ставим 404 статус
    function remove_author_pages_page( $false ) {
    	if ( is_author() ) {
    		global $wp_query;
    		$wp_query->set_404();
    		status_header( 404 );
    		nocache_headers();
    
    		return true; // для обрыва хука 
    	}
    
    	return $false;
    }
    
    // удаляем ссылку
    function remove_author_pages_link( $content ) {
    	return home_url();
    }
    вадик 7.1 год назад

    используя этот код нет редиректа?

    странно что Кама говорит что у него тоже нет редиректа, т.к даже на этом сайте (wp-kama.ru) он есть.

    вчера нашел способ.

    тк. код такой код все же работает

    remove_filter( 'template_redirect', 'redirect_canonical' );

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

    add_action( 'template_redirect', function() {
    	if ( preg_match( '/^\/\?author=(.*)/i', $_SERVER['REQUEST_URI'] ) ) {
    		wp_redirect( home_url(), 301 );
    		exit();
    	}
    }, 1 );

    пс. Кама, палево есть когда редирект есть, у тебя его почемуто нет. на чистом вп еще не пробовал, но даже у тебя есть этот редирект почему-то

    kolshix 7.1 год назад

    обновил вчера вп и начались несостыковки кода - пришлось на чистом вп без плагинов и изменений темы проводить кое какие иесты - там и случайно протестил этот код - редиректа не было

    Kama 7.1 год назад

    странно что Кама говорит что у него тоже нет редиректа, т.к даже на этом сайте (wp-kama.ru) он есть.

    Тут не установлен такой код, тут мне такая защита не нужна...

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация