2017-02-12 6 views
1

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

remove_action('woocommerce_single_product_summary',  
'woocommerce_template_single_excerpt', 20); 
add_action('woocommerce_single_product_summary', 'the_content', 10); 

Приведенный выше код выполняет эту работу, однако он отображает полное описание. Я хотел бы как-то ограничить отображаемые слова (длину) и добавить кнопку «читать дальше» в конце.

+2

Длинное описание не поддерживает более подробно о товарах. Для этого нет никакой пользы, так как мы показываем содержимое на вкладке. – Yasir

ответ

1

Просто создайте новую функцию для обработки значения get_the_content(), чтобы получить только максимальное количество слов, и добавить «Подробнее» ссылку на конце:

function custom_single_product_summary(){ 
    $maxWords = 50; // Change this to your preferences 
    $description = strip_tags(get_the_content()); // Remove HTML to get the plain text 
    $words = explode(' ', $description); 
    $trimmedWords = array_slice($words, 0, $maxWords); 
    $trimmedText = join(' ', $trimmedWords); 

    if(strlen($trimmedText) < strlen($description)){ 
    $trimmedText .= ' &mdash; <a href="' . get_permalink() . '">Read More</a>'; 
    } 

    echo $trimmedText; 
} 

Затем использовать его в оригинале переопределение код вы пытаетесь использовать:

remove_action('woocommerce_single_product_summary',  
'woocommerce_template_single_excerpt', 20); 
add_action('woocommerce_single_product_summary', 'custom_single_product_summary', 10); 

ОБНОВЛЕНО ОТВЕТ: Измененный крюк действия вторить Валу e, а не возвращать его, так как WooCommerce ожидает, что действие выведет результат.

+0

Благодарим вас за ответ. Тем не менее, пока ничего не отображается в части «выдержки» продукта. – user2093301

+0

См. Мой обновленный ответ. Действие, необходимое для повторения вывода, а не возврата его из функции, чтобы оно работало. – ablopez