Пагинация WooCommerce: удалить ‘page’ из URL

Вопрос или проблема

Я хочу изменить ссылки нумерации страниц WooCommerce с:

  • example.com/category/page/3/ на:
  • example.com/category/3/

Я нашел много примеров о том, как изменить ‘/page/’ на ‘/something/’, но я хочу только номер текущей страницы. Я также пробовал это:

$wp_rewrite->pagination_base=""; 

Но тогда мой URL выглядит так:

example.com/category//3/

И это тоже не хорошо. Возможно ли вообще убрать ‘базу нумерации страниц’ из структуры URL?

Если вы зайдете в панель управления, в настройки, а затем в раздел “Постоянные ссылки”, вы можете просто ввести “.” в поле базы категорий, что удалит любые добавления к фактическому URL.

В качестве альтернативы: вы вообще устанавливали собственную структуру URL для ваших постоянных ссылок? Это, очевидно, первое

Отказ от ответственности: я не уверен, что это работает для WooCommerce.

Мой ответ — это возможно, однако единственный способ, который я знаю, — это настроить файлы WooCommerce и написать код почти с нуля, чтобы использовать URL для определения страницы по номеру. Однако это трудно достичь, но возможно, потому что что-то должно указывать, что это вторая страница, а 2, 3 или 4 — это номер страницы. Следовательно, переменная должна быть в месте, чтобы это установить, и у этой переменной должен быть символ. Другой путь, и, возможно, лучший, — передать эту переменную в вашу php-сессию, которая невидима для пользователя, и вы можете получить информацию, изменив файл wc. Сказав это, мой совет для простоты — изменить переменную вашей функции

$wp_rewrite->pagination_base="custom-page-pagination";

на

$wp_rewrite->pagination_base="pg";

и результат будет

example.com/category/pg/2/

это не то, что планировалось, но если вы можете с этим смириться, WooCommerce скажет спасибо. И кому в общем-то это важно. Верно! Но да, это возможно, но вам нужно будет изменить код файлов WooCommerce, чтобы это сделать. Вам нужно будет настроить некоторые файлы wc.

Ответ или решение

Изменение пагинации в WooCommerce, чтобы убрать ‘page’ из URL, требует определенной настройки, так как изначально WooCommerce использует стандартную структуру URL с включением слова ‘page’. Однако, с правильными подходами, можно добиться желаемого формата URL, например, example.com/category/3/.

Шаги для удаления ‘page’ из URL в WooCommerce

  1. Отключение базовой пагинации
    Чтобы отключить базу пагинации, вы можете воспользоваться классом $wp_rewrite в вашем файле functions.php темы. Добавьте следующий код:

    add_action('init', 'custom_rewrite_rules');
    
    function custom_rewrite_rules() {
       global $wp_rewrite;
       $wp_rewrite->pagination_base = '';
       $wp_rewrite->flush_rules();
    }

    Обратите внимание, что использование пустой строки в качестве pagination_base может привести к созданию URL с двойным слешем, например, example.com/category//3/.

  2. Создание правильных правил перезаписи
    Чтобы избежать проблем с пустым слешем, вам нужно изменить правила перезаписи. Можно это реализовать следующим образом:

    add_filter('request', 'remove_page_from_request');
    
    function remove_page_from_request($query_vars) {
       if (isset($query_vars['paged']) && is_numeric($query_vars['paged'])) {
           $query_vars['paged'] = intval($query_vars['paged']);
       }
       return $query_vars;
    }
    
    add_action('init', function() {
       global $wp_rewrite;
    
       // Создание нового правила перезаписи
       add_rewrite_rule('^category/([0-9]+)/?', 'index.php?post_type=product&paged=$matches[1]', 'top');
    });

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

  3. Обновление постоянных ссылок (permalinks)
    После внесения изменений обязательно обновите настройки постоянных ссылок (Permalinks) в админ панели WordPress. Это можно сделать, перейдя в НастройкиПостоянные ссылки, и просто нажать "Сохранить изменения". Это действие позволит обновить правила перезаписи, чтобы они вступили в силу.

  4. Тестирование URL
    Убедитесь, что новая структура URL работает корректно. Перейдите к категориям товаров и проверьте, что при переходе по страницам отсутствует ‘page’.

Рекомендации

  • Кастомизация WooCommerce: Учтите, что при внесении изменений в WooCommerce необходимо следить за следующими обновлениями плагина, чтобы ваши кастомизации не были перезаписаны. Используйте дочерние темы и плагины, если это возможно, для меньшего риска потери изменений.
  • SEO оптимизация: После изменения структуры URL убедитесь, что старые ссылки перенаправлены на новые. Это поможет избежать потери трафика и улучшит SEO. Можно использовать плагин для редиректов или реализовать редиректы вручную.

Заключение

Удаление ‘page’ из URL в WooCommerce — задача вполне выполнимая, но она требует аккуратной настройки и тестирования. Следуйте представленным шагам, и вы сможете настроить систему так, чтобы структура ваших URL соответствовала вашим требованиям. Будьте внимательны при изменении кода и не забывайте о Redirection или других методах управления SEO-факторами для поддержания посещаемости вашего сайта.

Оцените материал
Добавить комментарий

Капча загружается...