Intereting Posts
Тип персонализированного разметки и дубликаты сообщений Получить идентификатор категории из выпадающего меню Как включить комментарий и количество сообщений пользователя в этом пользовательском запросе Управление и воспроизведение больших видеороликов Как показать подменю только с помощью wp_nav_menu () Можно ли использовать намерения Twitter с изображением почты в WordPress? Веб-сайт затоплен Исправлена ​​проблема с установкой плагинов с помощью Composer Показать пользовательское поле текущей страницы в цикле Как программно создавать новые должности пользовательского типа сообщений над API-интерфейсом XML-RPC? цифровой виджет будильника Как получить общее количество категорий в списке результатов поиска? Назначение функций WP, которые эхо-переменные PHP WordPress постоянно изменяет путаницу Удалите повторяющиеся строки из базы данных wordpress, где столбец дублируется в phpmyadmin

Как использовать страницу на главной странице, почему работает / page / ###?

Поэтому я экспериментировал с разными темами и решил, что это вещь WordPress, а не тема.

Скажем, я создаю страницу под названием «Передняя страница», а затем задаю ее как начальную страницу настроек чтения в разделе «Передние страницы».

После этого на всех страницах будут отображаться следующие URL-адреса:

  • domain.com/page/50
  • domain.com/page/10000000

Я предполагаю, что этот МОЖЕТ иметь отрицательные побочные эффекты SEO. Кроме этого, не следует ли WordPress метать 404 на этих URL-адресах?

Solutions Collecting From Web of "Как использовать страницу на главной странице, почему работает / page / ###?"

В WordPress у вас есть 3 основных вида «просмотров»:

  • особые страницы
  • архив
  • поиск

«Стандартная» домашняя страница – это лишь несколько специальная страница архива, статическая передняя страница – несколько особая особая страница.

Когда вы используете page конечной точки в URL-адресе главной страницы, WordPress внутренне устанавливает page переменной запроса на определенный номер (будет paged для обычных страниц).

Проблема в том, что paged – это запрос var, который в WordPress имеет смысл только для просмотров в архиве и поиске, на самом деле нет никакого разбиения на страницы для одного результата в базе данных.

Короче говоря, WordPress распознает, что URL-адрес формально правильный, но игнорирует запрос var, который он устанавливает.

На самом деле, если вы пытаетесь сделать то же самое с любой другой страницей (это не первая страница), то поведение будет одинаковым.

Короче говоря, эти URL-адреса, даже если они не являются «каноническими» URL-адресами, не приводят к 404, потому что они соответствуют допустимому набору запросов, которые возвращают непустой результат.

С единственными сообщениями этого не происходит, потому что WordPress для сообщений перенаправляет «канонический» URL-адрес.

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

Таким образом, в балансе затрат и выгод WordPress предпочитает не перенаправлять страницы на свой канонический URL по умолчанию.

Даже потому, что в отношении SEO это не то, что действительно имеет плохие последствия, если у вас нет всех ссылок на веб-сайты, которые указывают на URL-адрес главной страницы с добавлением /page/xxx .

И в этом случае, если такие URL-адреса больше недействительны, вы должны перенаправить их на себя.

Кстати, вы можете заставить WordPress применять каноническое перенаправление также для страниц и главной страницы:

 add_action('template_redirect', function() { if ( (is_page() && get_query_var('paged')) || ( is_front_page() && get_option('show_on_front') === 'page' && get_query_var('page') ) ) { wp_safe_redirect(get_permalink(get_queried_object_id()), 301); exit(); } }, 99); 

В качестве альтернативы вы также можете принудительно выполнить 404 на этих URL-адресах. ИМО не имеет реальной выгоды для SEO над 301 перенаправлением, но имеет негативные последствия для пользователей, которые больше не используют эту страницу.

Кстати, это код:

 add_action('template_redirect', function() { if ( (is_page() && get_query_var('paged')) || ( is_front_page() && get_option('show_on_front') === 'page' && get_query_var('page') ) ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); locate_template(array('404.php', 'index.php'), true); exit(); } }, 99);