将前三个字换行

时间:2018-10-01 17:35:54

标签: php wordpress wordpress-theming

我想过滤the_content以将第一段的前三个单词包装在span标记中。到目前为止,这是我的代码:

function first_paragraph($content) {
   if(is_single()) {
      return preg_replace('regex goes here', "<p><span>$1</span>", $content, 1);
   }
}

add_filter('the_content', 'first_paragraph');

到目前为止,我没有找到与第一段的前三个单词相匹配的正则表达式和替换。

有帮助吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

就像这样:

php > $content = 'The quick brown fox jumped over the lazy dog.';
php > echo preg_replace('/^((\S+\s+){2}\S+)/', '<span>$1</span>', $content);
<span>The quick brown</span> fox jumped over the lazy dog.

因此,您需要这样做:

function first_paragraph($content) {
   if(is_single()) {
      return preg_replace('/^((\S+\s+){2}\S+)/', "<p><span>$1</span>", $content, 1);
   }
}

add_filter('the_content', 'first_paragraph');

请记住,如果$content的单词少于四个,则正则表达式将不匹配,替换也不会发生。