Вопрос или проблема
Я использую плагин Woocommerce, в данный момент я ничего не настроил в «Базе категории продукта», поэтому мой архив woocommerce выглядит как /product-category/category2/. Я хочу убрать часть «product-category», чтобы моя архивная страница выглядела как /category2/. Я думаю, что могу сделать это, установив ‘./’ в настройках постоянных ссылок.
Но что, если у меня уже есть обычная страница WordPress с слагом /category1 и я хочу перенаправить на эту страницу (не woocommerce /product-category/category1 без product-category), но при этом я всё равно хочу, чтобы /category2 оставалась архивом woocommerce.
-
Когда я ввожу /category1 -> перенаправление на обычную страницу с этой постоянной ссылкой (хотя у меня всё еще есть архивная страница /category1, но я её не использую).
-
Когда я ввожу /category2 -> перенаправление на архив woocommerce category2 (потому что у меня нет никакой страницы с той же постоянной ссылкой).
Возможно ли это сделать? Я не пробовал, потому что боюсь сломать свой сайт. Надеюсь, вы сможете дать мне совет, спасибо.
Посмотрите на это
https://kellenmace.com/remove-custom-post-type-slug-from-permalinks/
Я использую это с помощью этого плагина: Code Snippets By Shea Bunge
Это позволяет вам модифицировать ваш файл functions.php, не редактируя его напрямую. Это значит, что обновления ядра WordPress и тем не удалят ваши изменения.
Наконец, могу ли я предложить вам попробовать использовать плагин для создания тестовой версии вашего сайта, чтобы вам не пришлось пробовать что-то на живом сайте.
Попробуйте это: WP Staging – DB & File Duplicator & Migration By WP-Staging
Надеюсь, это поможет.
С уважением
Стив
Ответ или решение
Для достижения цели удаления базы категорий продукта в WooCommerce и перенаправления запросов на страницы с одинаковыми permalink-ами, необходимо следовать нескольким шагам. Это позволяет сохранить функциональность вашего сайта, избегая конфликтов между пользовательскими страницами и архивами категорий WooCommerce.
Шаг 1: Настройка постоянных ссылок
Первым делом зайдите в настройки постоянных ссылок вашего WordPress сайта. Для этого перейдите в «Настройки» -> «Постоянные ссылки». В поле «База категории товара» оставьте его пустым, чтобы ваша структура ссылок выглядела как /category2/
. Это будет корректно работать для ваших категорий продуктов, убирая product-category
из URL.
Шаг 2: Программное редиректирование страниц
Поскольку у вас уже есть страница category1
, вам нужно настроить редирект, чтобы запросы на /category1
перенаправлялись на созданную вами страницу, а запросы на /category2
продолжали отображать архив WooCommerce. Вы можете сделать это, добавив код в файл функций вашей темы или, что более безопасно, используя плагин для добавления пользовательских фрагментов кода, такой как Code Snippets.
Пример кода для редиректа может выглядеть так:
add_action('template_redirect', function() {
if (is_category('category1')) {
wp_redirect(home_url('/category1'), 301);
exit;
}
});
Этот код проверяет, является ли категория category1
, и перенаправляет пользователя на соответствующую страницу.
Шаг 3: Убедитесь в отсутствии конфликтов
Важно убедиться, что на вашем сайте нет других страниц, постов или категорий с тем же слогом (category1
или category2
). Это может вызвать конфликты в системе управления контентом WordPress и отрицательно сказываться на SEO. Попробуйте использовать плагин, такой как Redirection, чтобы отслеживать и управлять всеми перенаправлениями.
Шаг 4: Тестирование на стенде
Перед внесением изменений на живую версию вашего сайта, обязательно протестируйте их на создание копии вашего сайта. Как было упомянуто, рекомендуем использовать плагин WP Staging для создания тестовой версии вашего сайта, что позволит вам провести все необходимые тесты и избежать возможных неполадок на основном ресурсе.
Вывод
Следуя этим шагам, вы сможете удалить базу категорий продукта в WooCommerce и правильно настроить перенаправления без ошибок. Это улучшит работу вашего сайта, а также сделает его более доступным для пользователей и поисковых систем. Убедитесь, что каждое изменение тщательно протестировано, чтобы избежать неожиданных последствий.