Как вывести полное описание товара в категории Woocommerce?
Как в Woocommerce в категориях вывести первые 300 знаков именно полных описаний товаров?
Дополнительно:
Для отображения первых 300 знаков полных описаний товара в категориях Woocommerce необходимо в файл шаблона functions.php добавить код:
//Отображение части полного описания товаров в категории function add_full_description_in_product_categories() { global $product; if ( ! $product->post->post_content ) return; echo '<div class="cat_shop_full_description">'; $full_description = substr($product->post->post_content, 0, 300);//обрезаем текст до 300 символов $full_description = rtrim($full_description, "!,.-");//обрезаем знаки $full_description = substr($full_description, 0, strrpos($full_description, ' '));//обрезаем по последний пробел $full_description = $full_description.' ...';//ставим троеточие echo apply_filters( 'woocommerce_description', $full_description ); echo '</div>'; } add_action('woocommerce_after_shop_loop_item_title', 'add_full_description_in_product_categories', 7); |
//Отображение части полного описания товаров в категории function add_full_description_in_product_categories() { global $product; if ( ! $product->post->post_content ) return; echo '<div class="cat_shop_full_description">'; $full_description = substr($product->post->post_content, 0, 300);//обрезаем текст до 300 символов $full_description = rtrim($full_description, "!,.-");//обрезаем знаки $full_description = substr($full_description, 0, strrpos($full_description, ' '));//обрезаем по последний пробел $full_description = $full_description.' ...';//ставим троеточие echo apply_filters( 'woocommerce_description', $full_description ); echo '</div>'; } add_action('woocommerce_after_shop_loop_item_title', 'add_full_description_in_product_categories', 7);
По желанию, можно в файл стилей добавить:
.cat_shop_full_description {color:#000000; margin-bottom: 12px; font-size: 18px;} |
.cat_shop_full_description {color:#000000; margin-bottom: 12px; font-size: 18px;}
Пример: https://ramwell.ru/product-category/korpusa/
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Вывести первые 300 знаков полного описания товара в категориях WooCommerce можно через hook в карточке товара. Но лучше не использовать простой
substr(): он ломает кириллицу и может обрезать HTML посередине тега. Используйтеwp_trim_words()или аккуратную обрезку после удаления HTML.Пример:
add_action('woocommerce_after_shop_loop_item_title', function () { global $product; if (!$product) { return; } $content = get_post_field('post_content', $product->get_id()); if (!$content) { return; } $text = wp_strip_all_tags(strip_shortcodes($content)); $text = mb_substr($text, 0, 300); $text = trim($text); echo '<div class="cat-shop-full-description">'; echo esc_html($text) . '...'; echo '</div>'; }, 15);
Если хотите резать по словам, а не по символам:
$text = wp_trim_words($text, 45, '...');
Для большого каталога учитывайте, что полное описание может содержать shortcode, таблицы, изображения и тяжёлую разметку. В карточке категории лучше выводить короткое описание товара
post_excerpt, а не полное. Оно как раз создано для краткого текста.Если всё же нужен фрагмент полного описания, обязательно стилизуйте блок и проверьте сетку товаров на мобильных. Слишком длинный текст в карточке может растянуть товарную плитку и ухудшить UX.
Ещё момент: не вставляйте этот код прямо в родительскую тему WooCommerce. Лучше разместить его в дочерней теме или маленьком плагине. После изменения очистите кэш и проверьте категорию, поиск, распродажу и страницу с товарами без описания. Код должен молча пропускать пустые товары, а не выводить пустые
divв каждой карточке.