Změna URL struktury pro terms (ve Woocommerce)
Tento článek popisuje změnu URL struktury pro taxonomii product_cat
ve WooCommerce pomocí filtrovací funkce term_link
. Cílem bylo vytvořit vlastní URL strukturu, kde pomocí URL parametrů dochází k filtrování, vyhledávání a stránkování produktů na jedné jediné stránce. Samotná tato změna ale nebude mít vliv na zobrazení produktů. Je potřeba vytvořit vlastní WP_Query
.
Implementace změny pomocí filtru term_link
K dosažení požadované změny byl použit následující kód:
/**
* Vytvoření vlastního odkazu na kategorii produktu
*
* @author Jan "Wacki" Vašák
* @param string $url - Odkaz na kategorii
* @param object $term - Objekt kategorie
* @param string $taxonomy - Taxonomie
*
* @return string - Odkaz na kategorii produktu
*/
function create_custom_product_category_link($url, $term, $taxonomy)
{
// Zkontrolujeme, zda je to taxonomie 'product_cat', url neměníme
if ($taxonomy !== 'product_cat') :
return $url;
endif;
// Získáme slug kategorie a URL stránky "obchod"
$termSlug = $term->slug;
$shopPageLink = get_permalink(get_option('woocommerce_shop_page_id'));
// Vytvoříme nové URL
$modifiedTermLink = add_query_arg('kategorie', $termSlug, $shopPageLink);
return $modifiedTermLink;
}
add_filter('term_link', 'create_custom_product_category_link', 10, 3);
Tento kód nahrazuje standardní URL generovanou WooCommercem pro kategorie produktů. Místo původní URL struktury se nyní používá URL ve formátu [shop_page_url]?kategorie=[term_slug]
. To znamená, že URL pro kategorii se slugem „bryle“ bude vypadat například takto: www.mujobchod.cz/obchod/?kategorie=bryle
.
Důsledky změny
Změna URL struktury může mít vliv na SEO. Je důležité přesměrovat staré URL na nové, aby se předešlo ztrátě SEO hodnoty. To se dá dosáhnout pomocí pluginů pro přesměrování (např. Redirection) nebo manuálním přidáním přesměrování do .htaccess
souboru.