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

Как изменить функцию paginate_links() в Wordpress, чтобы добавить ссылку на первую страницу в пагинацию?
Я использую paginate_links() для вывода ссылок в виде /page/2/, /page/3/, /page/n/. Но мне нужно, чтобы также выводилась ссылка на первую страницу (/page/1/).
  • 9 февраля 2024 г. 7:18
Ответы на вопрос 1
Для того чтобы добавить ссылку на первую страницу в пагинации, вы можете использовать фильтр `paginate_links`, который позволяет изменять HTML код, генерируемый функцией `paginate_links()`. Однако, если вы хотите добавить ссылку на первую страницу так, чтобы она отображалась в виде `/page/1/`, вам потребуется немного больше кода.

Ниже представлен пример кода, который можно добавить в файл `functions.php` вашей темы WordPress для добавления ссылки на первую страницу с использованием фильтра `paginate_links`:

```php
function custom_paginate_links($link_output, $link) {
    if ($link['type'] === 'first') {
        // Измените структуру URL, если необходимо
        // В данном случае мы просто добавляем '/page/1/'
        $first_page_url = rtrim(get_pagenum_link(1), '/') . '/page/1/';
        $link_output = '<a class="first-page" href="' . esc_url($first_page_url) . '">&laquo; Первая</a>';
    }

    return $link_output;
}
add_filter('paginate_links_output', 'custom_paginate_links', 10, 2);

function add_first_page_link($args) {
    if (is_singular() || $args['total'] <= 1 || $args['current'] == 1) {
        return $args;
    }

    $args['add_args'] = is_array($args['add_args']) ? $args['add_args'] : [];
    $args['add_args']['first'] = true;
    $args['add_args'] = wp_parse_args([
        'format'  => '',
        'total'   => $args['total'],
        'current' => $args['current']
    ], $args['add_args']);
    
    return $args;
}
add_filter('paginate_links_args', 'add_first_page_link');
```

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

Обратите внимание, что если на вашем сайте используется постоянная ссылка по умолчанию для первой страницы блога (например, http://example.com/ вместо http://example.com/page/1/), вы можете удалить часть кода, которая добавляет '/page/1/' к URL, и просто использовать `get_pagenum_link(1)` для получения URL первой страницы.

Не забудьте очистить кэш, если вы используете кэширующие плагины, и убедитесь, что ваша тема корректно применяет фильтры `paginate_links_output` и `paginate_links_args`. Вы также можете настроить CSS классы и стили для новой ссылки в соответствии с вашим дизайном.
Похожие вопросы