Удалите сгенерированные названия классов категорий и тегов из разметки списков продуктов и блогов WooCommerce.

Вопрос или проблема

Я заметил в своей настройке WordPress/WooCommerce, что каждый раз, когда я добавляю тег к продукту или блогу, этот тег добавляется как класс в перечисленный элемент (продукт/блог).

Я также заметил, что для каждой категории, в которую я помещаю эти элементы поста, добавляется класс в том же месте.

Как я могу предотвратить добавление названий тегов и категорий в мой HTML-разметку как классов в WordPress и WooCommerce? Мне это не нужно, и это создает беспорядок.

Спасибо за помощь! Я не смог найти аналогичную функцию нигде.

Вам необходимо использовать фильтр WooCommerce wc_product_post_class. Следующий код должен помочь.


function my_strip_tag_class( $classes ) {

    global $post;
    $product_tags = get_the_terms( $post->ID, 'product_tag' );

    if( $product_tags ) foreach ( $product_tags as $tag ) {

        $tag_index = array_search($tag, $classes);

          if($tag_index !== false){
            unset($classes[$tag_index]);
        }

    }
    return $classes;
}
add_filter( 'wc_product_post_class', 'my_strip_tag_class' );

Для WooCommerce 3.6.2+ попробуйте фильтр woocommerce_post_class:

add_filter('woocommerce_post_class', function($classes, $product) {
    // уберите любые классы, которые вы хотите здесь...
    return $classes;
}, 10, 2);

Ответ или решение

Удаление классов тегов и категорий из разметки WooCommerce

Если вы используете WooCommerce в своем WordPress-установке, то могли заметить, что добавление тегов и категорий к продуктам и записям создает неразбериху в HTML-разметке. Каждый раз при публикации поста или продукта новые теги и категории добавляются как классы, что может привести к перегруженности разметки и усложнению поддержки веб-сайта.

К счастью, существует простой способ предотвратить добавление этих классов в разметку, используя хуки (фильтры) в WooCommerce. Ниже представлены шаги и примеры кода, которые помогут вам эффективно избавиться от нежелательных классов.

Шаг 1: Удаление классов тегов из продуктов

Чтобы убрать классы тегов из продуктов, можно воспользоваться фильтром wc_product_post_class. Пример кода выглядит следующим образом:

function my_strip_tag_class( $classes ) {
    global $post;

    // Получаем все теги товара
    $product_tags = get_the_terms( $post->ID, 'product_tag' );

    // Если теги найдены, удаляем их классы
    if( $product_tags ) {
        foreach ( $product_tags as $tag ) {
            $tag_index = array_search($tag->slug, $classes);
            if($tag_index !== false) {
                unset($classes[$tag_index]);
            }
        }
    }

    return $classes;
}
add_filter( 'wc_product_post_class', 'my_strip_tag_class' );

В этом примере функция my_strip_tag_class получает все теги для текущего поста и ищет их среди классов. Если класс найден, он удаляется с помощью unset().

Шаг 2: Удаление классов тегов из записей блога

Для того чтобы очистить классы тегов и категорий из разметки записей блога, рекомендуется использовать фильтр woocommerce_post_class. Код может выглядеть следующим образом:

add_filter('woocommerce_post_class', function($classes, $product) {
    // Здесь можно удалить классы или модифицировать массив $classes
    return $classes;
}, 10, 2);

В этом случае вы можете добавить логику для удаления любых нежелательных классов или просто оставить массив $classes без изменений.

Заключение

Удаление классов тегов и категорий из разметки WooCommerce поможет сделать ваш код более чистым и упростить поддержку. Убедитесь, что вы добавляете данный код в файл functions.php вашей темы или используете специальный плагин для кастомных функций, чтобы сохранить изменения при обновлениях темы.

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

Ваш сайт станет более структурированным и легче воспринимаемым для поисковых систем, что в свою очередь положительно скажется на вашем SEO.

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

Капча загружается...