我想过滤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');
到目前为止,我没有找到与第一段的前三个单词相匹配的正则表达式和替换。
有帮助吗?
谢谢!
答案 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
的单词少于四个,则正则表达式将不匹配,替换也不会发生。