Flector

Как отключить архивы по авторам?

Ссылка на архив автора

В большинстве случаев никто не использует на сайте архивы по авторам. Это банально не имеет смысла, если автор на сайте один. И даже если он не один, то куча лишних страниц дублирующего контента вам вовсе не нужна (каноникал в движке прописывается только для записей). Факт того, что вы не используете архивы по авторам, вовсе не означает, что WordPress эти архивы не создаст при открытии ссылки вида "/author/nick" (как на скриншоте). Можно закрыть индексацию страниц архивов через robots.txt, но лучше будет вообще избавиться от этих архивов полностью, так как поисковики зачастую игнорируют директивы в robots.txt. Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:

//отключение архивов по автору start
function wph_disable_author_archive($false) {
    if (is_author()) {
        global $wp_query;
        $wp_query->set_404();
        status_header( 404 );
        nocache_headers();
        return true;
    }
    return $false;
}
//удаление ссылки на архив автора
function wph_remove_author_link($content) {return home_url();}
 
add_action('pre_handle_404', 'wph_disable_author_archive');
add_filter('author_link', 'wph_remove_author_link');
//отключение архивов по автору end

Этот код не только отключит генерацию архивов по авторам, но и удалит ссылку на страницу архива при выводе автора записи через функцию the_author_link().

Вероятно вам стоит также добавить такой код:

//запрет индексирования страниц с ошибкой 404 start
function wph_noindex_for_404() {
    if( is_404() ) {
        echo '<meta name="robots" content="noindex, follow" />'.PHP_EOL;
    }
}
add_action('wp_head', 'wph_noindex_for_404');
//запрет индексирования страниц с ошибкой 404 end

С помощью него в индекс поисковиков не попадут страницы с ошибкой 404.


Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!