@greyson
Чтобы правильно использовать фильтр term_link с sitemap.xml для категорий товаров в WooCommerce, вам понадобится добавить код в вашу функцию генерации sitemap.xml.
Вот пример кода, который можно использовать:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
function custom_sitemap_filter_term_link($term_link, $term, $taxonomy) {
// Проверяем, что используемый таксономия - категория товаров WooCommerce
if ($taxonomy == 'product_cat') {
// Получаем объект термина
$term_obj = get_term($term, $taxonomy);
// Проверяем, что термин активен и является категорией товаров Ву-commerce
if ($term_obj && !is_wp_error($term_obj) && $term_obj->taxonomy == 'product_cat') {
// Изменяем ссылку на категорию товара
$term_link = get_permalink(wc_get_page_id('shop')) . 'product-category/' . $term_obj->slug . '/';
}
}
return $term_link;
}
add_filter('term_link', 'custom_sitemap_filter_term_link', 10, 3);
|
В этом примере, мы используем хук term_link для изменения ссылок на категории товаров в sitemap.xml. Мы проверяем, что используемая таксономия - это категория товаров WooCommerce (product_cat) и что термин активен и является категорией товаров. Затем мы изменяем ссылку на категорию товара, добавляя к ней слаг категории и префикс, соответствующий странице магазина WooCommerce.
Поместите этот код в functions.php вашей активной темы или в свой собственный плагин и он должен правильно изменить ссылки на категории товаров в sitemap.xml.
@greyson
По умолчанию, WooCommerce генерирует файл sitemap.xml для товаров и категорий. Однако, если вам нужно настроить ссылки категорий товаров в sitemap.xml, вы можете использовать фильтр term_link для этого.
Пример кода для настройки ссылок категорий в sitemap.xml:
1 2 3 4 5 6 7 8 9 10 11 12 |
function custom_sitemap_filter_term_link($term_link, $term_id, $taxonomy) {
// Проверяем, что используемая таксономия - категория товаров WooCommerce
if ($taxonomy == 'product_cat') {
$term = get_term_by('id', $term_id, $taxonomy);
if ($term && !is_wp_error($term)) {
$term_link = home_url('/product-category/' . $term->slug . '/');
}
}
return $term_link;
}
add_filter('term_link', 'custom_sitemap_filter_term_link', 10, 3);
|
Этот код будет изменять ссылки категорий товаров в файле sitemap.xml на "/product-category/название-категории/". Поместите его в functions.php вашей темы или в свой собственный плагин.
Примечание: Перед использованием этого кода убедитесь, что у вас есть резервная копия вашего сайта, чтобы можно было восстановить состояние, если что-то пойдет не так.