Уменьшите длинное описание продукта в Woocommerce

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

add_action( 'woocommerce_after_shop_loop_item_title', 'shorten_product_excerpt', 35 );
function shorten_product_excerpt()
{
    global $post;
    $limit = 14;
    $text = $post->post_excerpt;
    if (str_word_count($text, 0) > $limit) {
        $arr = str_word_count($text, 2);
        $pos = array_keys($arr);
        $text = substr($text, 0, $pos[$limit]) . '...';
        // $text = force_balance_tags($text); // may be you dont need this…
    }
    echo '<span class="excerpt"><p>' . $text . '</p></span>';
}

person Duc Phuli    schedule 02.06.2018    source источник


Ответы (1)


На отдельных страницах продукта Woocommerce подробное описание отображается на вкладке «Описание». Если вы посмотрите на исходный код шаблона single-product/tabs/description.php, он использует функцию WordPress the_content() для отображения этого длинного описания.

Таким образом, вы можете использовать the_content специальный хук фильтра Wordpress, чтобы сократить длинное описание продукта:

add_filter( 'the_content', 'shorten_product_long_descrition', 20 );
function shorten_product_long_descrition( $content ){
    // Only for single product pages
    if( ! is_product() ) return $content;

    // Set the limit of words
    $limit = 14;

    if (str_word_count($content, 0) > $limit) {
        $arr = str_word_count($content, 2);
        $pos = array_keys($arr);
        $text = '<p>' . substr($content, 0, $pos[$limit]) . '...</p>';
        $content = force_balance_tags($text); // needded
    }
    return $content;
}

Код находится в файле function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

До:

введите здесь описание изображения

После:

введите здесь описание изображения

Аналогично: ограничить длину краткого описания продукта в Woocommerce

person LoicTheAztec    schedule 02.06.2018