Как убрать категорию товара из URL в WordPress: Полное руководство

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

Важность коротких и понятных URL-адресов для SEO

Короткие и понятные URL-адреса легче индексируются поисковыми системами. Google и другие поисковики предпочитают URL, которые четко описывают содержимое страницы. Удаление избыточной информации, такой как категория товара, делает URL лаконичнее и привлекательнее для поисковых роботов.

Улучшение пользовательского опыта (UX) с помощью упрощенных URL

Пользователям проще запоминать и делиться короткими URL. Упрощенный URL также выглядит более профессионально и вызывает больше доверия у посетителей.

Стандартная структура URL товаров WooCommerce (с категориями)

По умолчанию, WooCommerce включает категорию товара в URL. Это может быть полезно для навигации по сайту, но часто делает URL длинным и сложным для восприятия. Цель — добиться URL вида вашсайт.com/название-товара.

Способ 1: Использование плагинов для удаления категорий товаров

Использование плагинов – самый простой и быстрый способ удалить категории товаров из URL в WooCommerce. Существует несколько популярных плагинов, которые позволяют это сделать без необходимости редактирования кода.

  • Remove WooCommerce Category Slug: Специализированный плагин, разработанный исключительно для удаления префикса категории из URL товаров.
  • Custom Permalinks: Более универсальный плагин, позволяющий настраивать постоянные ссылки для различных типов записей, включая товары WooCommerce.

Пошаговая инструкция: Настройка и использование плагина Remove WooCommerce Category Slug

  1. Установите и активируйте плагин Remove WooCommerce Category Slug через панель управления WordPress.
  2. Перейдите в WooCommerce > Remove Category Slug (или аналогичный пункт меню, созданный плагином).
  3. Плагин автоматически удалит префикс категории из URL товаров. Обычно не требуется никаких дополнительных настроек.
  1. Установите и активируйте плагин Custom Permalinks.
  2. Перейдите на страницу редактирования товара.
  3. Вы увидите поле Custom Permalink. Удалите часть URL, содержащую категорию товара, и сохраните изменения.

Преимущества и недостатки использования плагинов

Преимущества:

  • Простота установки и настройки.
  • Не требуется знание кода.
  • Быстрое решение проблемы.

Недостатки:

  • Зависимость от сторонних плагинов.
  • Потенциальная несовместимость с другими плагинами.
  • Влияние на производительность (хотя и незначительное).

Способ 2: Редактирование файла .htaccess (продвинутый метод)

Редактирование файла .htaccess – более сложный способ, требующий осторожности. Неправильные изменения могут привести к неработоспособности сайта. Этот метод лучше подходит для опытных пользователей.

Важность резервного копирования сайта перед редактированием .htaccess

Перед внесением любых изменений в файл .htaccess, обязательно сделайте резервную копию всего сайта, включая базу данных и файлы. Это позволит восстановить сайт в случае возникновения проблем.

Пример кода для .htaccess и объяснение его работы

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # Правило для удаления категории товара из URL
    RewriteRule ^([^/]+)/([^/]+)/?$ $2 [L,R=301]

    # Стандартные правила WordPress
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

Объяснение:

  • RewriteEngine On: Включает модуль перенаправления.
  • RewriteRule ^([^/]+)/([^/]+)/?$ $2 [L,R=301]: Это правило удаляет первую часть URL (категорию) и перенаправляет на вторую часть (название товара). R=301 означает постоянный редирект, что важно для SEO.

Преимущества и недостатки редактирования .htaccess

Преимущества:

Реклама
  • Более прямой контроль над URL.
  • Нет зависимости от плагинов.
  • Потенциально более высокая производительность.

Недостатки:

  • Требует знаний синтаксиса .htaccess.
  • Высокий риск ошибок, приводящих к неработоспособности сайта.
  • Сложность отладки.

Решение возможных проблем и ошибок после редактирования .htaccess

  • Ошибка 500 (Internal Server Error): Проверьте синтаксис в .htaccess. Убедитесь, что нет опечаток или неправильных символов.
  • Циклическая переадресация: Убедитесь, что правила перенаправления не создают бесконечный цикл.
  • Неправильные URL: Проверьте, правильно ли работает правило RewriteRule. Возможно, потребуется изменить регулярное выражение.

Способ 3: Использование пользовательского кода (functions.php)

Добавление кода в файл functions.php вашей темы – еще один способ удалить категории товаров из URL. Этот метод требует базовых знаний PHP.

Добавление кода в файл functions.php вашей темы (или дочерней темы)

  • Важно: Никогда не редактируйте напрямую файл functions.php основной темы. Используйте дочернюю тему, чтобы избежать потери изменений при обновлении основной темы.

Пример кода для удаления категорий товаров и объяснение

<?php
/**
 * Удаляет префикс категории товара из URL.
 *
 * @param string $permalink URL товара.
 * @param WP_Post $post      Объект товара.
 *
 * @return string Обновленный URL товара.
 */
function remove_product_category_slug(string $permalink, WP_Post $post): string {
    if ($post->post_type == 'product') {
        $terms = get_the_terms($post->ID, 'product_cat');
        if ($terms) {
            $category_slug = $terms[0]->slug; // Берем первую категорию
            $permalink = str_replace('/' . $category_slug . '/', '/', $permalink);
        }
    }
    return $permalink;
}

add_filter('post_type_link', 'remove_product_category_slug', 10, 2);

/**
 *  Фиксит редиректы, если категория товара не найдена.
 */
function custom_redirect_product_cat( $template ) {
    global $wp_query;

    if ( isset( $wp_query->query_vars['product_cat'] ) ) {
        wp_redirect( home_url(), 301 );
        exit;
    }

    return $template;
}

add_filter( 'template_include', 'custom_redirect_product_cat' );

Объяснение:

  1. Функция remove_product_category_slug получает URL товара и объект товара.
  2. Если это товар, она получает его категории.
  3. Удаляет префикс категории из URL.
  4. Фильтр post_type_link применяет эту функцию ко всем URL товаров.
  5. Функция custom_redirect_product_cat перенаправляет запросы к несуществующим URL категорий на главную страницу сайта.

Преимущества и недостатки использования пользовательского кода

Преимущества:

  • Более гибкий контроль над URL.
  • Нет зависимости от плагинов.
  • Возможность тонкой настройки.

Недостатки:

  • Требует знаний PHP.
  • Риск ошибок, приводящих к неработоспособности сайта.
  • Сложность отладки.

Как избежать ошибок и конфликтов с другими плагинами

  • Всегда используйте дочернюю тему.
  • Тщательно проверяйте код на наличие ошибок.
  • Проверяйте совместимость с другими плагинами.
  • Используйте систему контроля версий (например, Git), чтобы отслеживать изменения и иметь возможность откатить их.

Важные замечания и дополнительные настройки

Настройка редиректов для старых URL-адресов (301 редирект)

После удаления категории товара из URL крайне важно настроить 301 редиректы со старых URL на новые. Это необходимо для сохранения SEO-позиций и предотвращения ошибок 404. Это можно сделать с помощью плагина Redirection или вручную в файле .htaccess.

Проверка работы URL-адресов после внесения изменений

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

SEO-оптимизация URL-адресов товаров

Убедитесь, что URL товаров содержат ключевые слова, релевантные содержанию страницы. Используйте дефисы (-) вместо пробелов.

Решение распространенных проблем и вопросов

  • 404 Ошибки: Проверьте правильность настроенных редиректов.
  • Неправильные URL: Проверьте код или настройки плагина.
  • Конфликты с плагинами: Отключите другие плагины, чтобы выявить источник конфликта.

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