显示说明而不是摘录,限制字词并添加阅读更多

时间:2017-02-12 21:27:04

标签: wordpress woocommerce

我想用长描述替换产品的摘录。现在我使用以下代码:

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

上面的代码完成了这项工作,但它显示了完整的描述。我想以某种方式限制显示的单词(长度)并添加"阅读更多"按钮结束。

1 个答案:

答案 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 .= ' &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 );

更新的答案: 更改动作挂钩以回显值而不是返回它,因为WooCommerce希望操作打印输出。