我想用长描述替换产品的摘录。现在我使用以下代码:
remove_action( 'woocommerce_single_product_summary',
'woocommerce_template_single_excerpt', 20 );
add_action( 'woocommerce_single_product_summary', 'the_content', 10 );
上面的代码完成了这项工作,但它显示了完整的描述。我想以某种方式限制显示的单词(长度)并添加"阅读更多"按钮结束。
答案 0 :(得分:1)
只需创建一个新函数来处理get_the_content()的值,只获得最多的单词数,并在最后添加“Read more”链接:
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 .= ' — <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 );
更新的答案: 更改动作挂钩以回显值而不是返回它,因为WooCommerce希望操作打印输出。