Вопрос или проблема
Я хочу изменить ссылки нумерации страниц 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
-
Отключение базовой пагинации
Чтобы отключить базу пагинации, вы можете воспользоваться классом$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/
. -
Создание правильных правил перезаписи
Чтобы избежать проблем с пустым слешем, вам нужно изменить правила перезаписи. Можно это реализовать следующим образом: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 как номер страницы.
-
Обновление постоянных ссылок (permalinks)
После внесения изменений обязательно обновите настройки постоянных ссылок (Permalinks) в админ панели WordPress. Это можно сделать, перейдя в Настройки → Постоянные ссылки, и просто нажать "Сохранить изменения". Это действие позволит обновить правила перезаписи, чтобы они вступили в силу. -
Тестирование URL
Убедитесь, что новая структура URL работает корректно. Перейдите к категориям товаров и проверьте, что при переходе по страницам отсутствует ‘page’.
Рекомендации
- Кастомизация WooCommerce: Учтите, что при внесении изменений в WooCommerce необходимо следить за следующими обновлениями плагина, чтобы ваши кастомизации не были перезаписаны. Используйте дочерние темы и плагины, если это возможно, для меньшего риска потери изменений.
- SEO оптимизация: После изменения структуры URL убедитесь, что старые ссылки перенаправлены на новые. Это поможет избежать потери трафика и улучшит SEO. Можно использовать плагин для редиректов или реализовать редиректы вручную.
Заключение
Удаление ‘page’ из URL в WooCommerce — задача вполне выполнимая, но она требует аккуратной настройки и тестирования. Следуйте представленным шагам, и вы сможете настроить систему так, чтобы структура ваших URL соответствовала вашим требованиям. Будьте внимательны при изменении кода и не забывайте о Redirection или других методах управления SEO-факторами для поддержания посещаемости вашего сайта.