Опубліковано

Робочий метод видалення product-category і product в WordPress

Як прибрати з URL product-category та product і після цього отримати коректний 301 редирект.

1.Встановлюємо плагін
https://clubwp.ru/resources/woocommerce-perfect-seo-url.189/

У деяких випадках (у зв’язку зі специфікою якихось тем або конфлікту плагінів) Perfect Seo URl встановлюється не коректно і редирект не працює або працює не правильно. Старі посилання мають статус 200, нові також статус 200 або 302. Для пошукових систем нам потрібен статус 301.

Щоб отримати 301 редирект у файлі function.php додаємо наступне

Видаляємо product-category з УРЛу категорій:

function base_category_redirect(){
$link = $_SERVER[‘REQUEST_URI’];

if( strpos($link, ‘product-category/’)!==false ){
$new_link = get_bloginfo(‘siteurl’).str_replace(‘product-category/’, ”, $link);
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: $new_link” );
exit();
}
}
add_action(‘init’, ‘base_category_redirect’, -10);

Видаляємо product з УРЛу товару:

function base_category_redirect2(){
$link = $_SERVER[‘REQUEST_URI’];

if( strpos($link, ‘product/’)!==false ){
$new_link = get_bloginfo(‘siteurl’).str_replace(‘product/’, ”, $link);
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: $new_link” );
exit();
}
}
add_action(‘init’, ‘base_category_redirect2’, -9);

Так як я не програміст і роблю деякі маніпуляції методом вставив – працює, пояснити принцип роботи не зможу. Але цей метод мені допоміг вирішити проблему з переадресацією.