Как добавить ссылку на первую страницу в пагинацию WordPress?

Ссылка скопирована
1 ответ

Как добавить ссылку на первую страницу в пагинацию Wordpress?
Вызываю пагинацию через paginate_links().
Ссылки выглядят так: /page/2/, /page/3/, /page/n/
Но на первую страницу ничего не выводиться, а мне надо, чтобы выводилось /page/1/

Дополнительно:

а зачем? без параметра и будет первая страницы

  • IvanU7n, Прям так нужно(
  • ne_pes, сделай редирект просто если очень нужно
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Виктор Sys Ответ

    В WordPress первая страница архива по умолчанию — это URL без /page/1/. Например, для архива нормальная первая страница будет /category/news/, а не /category/news/page/1/. Поэтому paginate_links() обычно не выводит ссылку на /page/1/: это сделано специально, чтобы не плодить дубль первой страницы.

    С SEO-точки зрения лучше не делать отдельный /page/1/. Правильная логика такая:

    • первая страница архива: /archive/;
    • вторая страница: /archive/page/2/;
    • третья страница: /archive/page/3/.

    Если Вам нужна кнопка “1” в пагинации, она должна вести на базовый URL архива, а не на /page/1/. Пример:

    $big = 999999999;
     
    echo paginate_links([
        'base'      => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
        'format'    => 'page/%#%/',
        'current'   => max(1, get_query_var('paged')),
        'total'     => $wp_query->max_num_pages,
        'prev_text' => 'Назад',
        'next_text' => 'Далее',
    ]);

    $big = 999999999; echo paginate_links([ 'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 'format' => 'page/%#%/', 'current' => max(1, get_query_var('paged')), 'total' => $wp_query->max_num_pages, 'prev_text' => 'Назад', 'next_text' => 'Далее', ]);

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

    $current = max(1, get_query_var('paged'));
     
    if ($current > 1) {
        echo '<a class="page-numbers" href="' . esc_url(get_pagenum_link(1)) . '">1</a>';
    }

    $current = max(1, get_query_var('paged')); if ($current > 1) { echo '<a class="page-numbers" href="' . esc_url(get_pagenum_link(1)) . '">1</a>'; }

    Если же по какой-то причине у Вас уже открывается /page/1/, лучше настроить 301-редирект с /page/1/ на базовую страницу. Так Вы не получите дубль, canonical-конфликт и лишние URL в индексе.

    Итог: технически можно нарисовать ссылку “1”, но вести она должна на первую страницу без /page/1/. Делать отдельный URL первой страницы обычно не нужно и вредно для структуры сайта.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно