
Как настроить постоянные ссылки для интернет-магазина на WooCommerce? Как убрать product-category из URL ваших товаров? Ответим на эти и многие другие вопросы в нашем сегодняшнем материале!
К какому виду мы собираемся приводить ссылки?
После прохождения всех шагов из этой статьи ссылки вашего интернет-магазина обретут следующий вид:
- Страница магазина: https://your-domain.ru/shop/
- Страница категории: https://your-domain.ru/shop/category-name/
- Страница товара: https://your-domain.ru/shop/category-name/product-name
Такая структура будет понятна не только посетителям вашего сайта, но и поисковым роботам.
Как настроить постоянные ссылки для WooCommerce?
Определитесь с тем, какой Слаг (Slug, Ярлык) будет у вашего магазина. Обычно используют “shop” или “catalog”. Определитесь с выбором и задайте этот ярлык для страницы “Магазин”.
Перейдите в “Woocommerce — Настройки — Товары” и убедитесь, что именно эта страница задана как “страница Магазина”.
Переходим в “Настройки — Постоянные ссылки”. В поле “База категорий товара” вставляем слаг страницы вашего магазина. В поле “Произвольная база” — “/shop/%product_cat%/”. Удостоверьтесь, что ваши настройки совпадают с настройками на скриншоте ниже.
Сохраните результат. Можете проверить свои страницы. Они выдают следующий результат:
- Страница магазина: https://your-domain.ru/shop/ (рабочая ссылка)
- Страница категории: https://your-domain.ru/shop/category-name/ (ошибка 404)
- Страница товара: https://your-domain.ru/shop/category-name/product-name (рабочая ссылка)
Чтобы исправить ошибку 404, находим файл functions.php вашей активной темы и вставляем в него следующее:
function wpd_product_category_base_same_shop_base( $flash = false ){
$terms = get_terms(array(
'taxonomy' => 'product_cat',
'post_type' => 'product',
'hide_empty' => false,
));
if ($terms && !is_wp_error($terms)) {
$siteurl = esc_url(home_url('/'));
foreach ($terms as $term) {
$term_slug = $term->slug;
$baseterm = str_replace($siteurl, '', get_term_link($term->term_id, 'product_cat'));
add_rewrite_rule($baseterm . '?$','index.php?product_cat=' . $term_slug,'top');
add_rewrite_rule($baseterm . 'page/([0-9]{1,})/?$', 'index.php?product_cat=' . $term_slug . '&paged=$matches[1]','top');
add_rewrite_rule($baseterm . '(?:feed/)?(feed|rdf|rss|rss2|atom)/?$', 'index.php?product_cat=' . $term_slug . '&feed=$matches[1]','top');
}
}
if ($flash == true)
flush_rewrite_rules(false);
}
add_filter( 'init', 'wpd_product_category_base_same_shop_base');
add_action( 'create_term', 'wpd_product_cat_same_shop_edit_success', 10, 2 );
function wpd_product_cat_same_shop_edit_success( $term_id, $taxonomy ) {
devvn_product_category_base_same_shop_base(true);
}
Вставили код? Отлично! Теперь переходим обратно в “Настройки — Постоянные ссылки” и нажимаем на кнопку “Сохранить”. Теперь все готово.
Статья была для вас полезной? Или у вас остались какие-то вопросы? Обязательно пишите комментарии, нам очень важна ваша обратная связь!
Интересует разработка сайтов? Хотите узнать больше о создании и продвижении сайтов? Подписывайтесь на нашу группу в ВКонтакте, чтобы не пропустить новые статьи!
Понравилась статья? Хотите поддержать нашу команду и не пропустить новые материалы? Тогда подписывайтесь на нашу группу в ВКонтакте или на канал в Телеграм. Там мы не просто уведомляем подписчиков о выходе новых статей, но и делимся результатами различных экспериментов по SEO-продвижению.
Дополняю отзыв.
Как и написал ранее, всё работает.
Но при добавлении новой категории товаров, во первых — бесконечно добавляется категория (прелоадер бесконечно крутится). Приходится обновлять страницу — категория при этом, всёравно создаётся. Но, открывается с ошибкой 404. Чтобы избежать ошибку 404 — приходится возвращаться в настройки постоянных ссылок и нажимать «сохранить изменения».
Алексей, есть варианты пофиксить эти монипуляции? У меня последний вордпресс, тема Woodmart, тоже последней версии
Тут уже подсказать не могу. Сам я сталкивался с задачей по оптимизации ссылок лишь пару раз. Оба раза тоже ловил такие проблемы. Но заказчиков это устроило. Честно, я и сам больших проблем в этом не вижу.
Меня тоже устраивает.
А перфекциониста, который внутри — не устраивает ))
Ладно, так и оставил. Структура, человеку и роботу понятна. Whoocomerce работает нормально. Никаких конфликтов за сутки не наблюдаю. Подкатегории тоже создаются и работают хорошо. Скримингфрог багов во внутренней оптимизации не выявил. Компарсер показал правильную вложенность ссылок, согласно заданной иерархии в Whoocomerce.
День страданий. Несколько ложных установленных плагинов. Ютуб. Яндекс, гугл. Всё напрасно.
Уже на последнем вздохе зашёл сюда и вот оно! Идеальное, простое решение. Теперь порядок в структуре. Снимаю шляпу
Привет. Очень приятно, что вы нашли ответ на свой вопрос на моем сайте 🙂
Спасибо! Пожалуй почитаю ваш блог!)
И вам спасибо. Надеюсь, и от других статей будет толк! 🙂
Сильно помогло
Очень рад помочь, спасибо за обратную связь)