给出这篇post\\u的内容:“Franky:这是一个测试。”
显示帖子时
然后,post\\u内容显示为:
“这是一个测试。
引用自:Franky”
有很多很多方法可以做到这一点。我想最好是通过the_content
但为了简单起见,在本例中,您通常会看到以下图像the_content()
在WordPress模板文件中。
$search_pattern = \'@^([^:]+):\\s*(.*)$@\';
$replace_pattern = \'$2<br>\' . "\\n" . \'Quote: $1\';
$new_post_content = preg_replace( $search_pattern, $replace_pattern, get_the_content() );
echo $new_post_content;
您应该通过WordPress筛选器运行此操作的原因是可能有其他筛选器作用于
the_content()
这也会修改它(或者需要在过滤器之后修改它)。
此外,还需要调整精确的正则表达式。我给出了一个假设输入都在一行上的示例。如果有多行输入,则需要进行相应的调整。然而,如何编写正则表达式是另一个主题,所以如果您需要这方面的帮助,我将发布一个单独的问题。
最后,要将其添加到\\u内容过滤器中,应该是这样的:
add_filter( \'the_content\', function( $input ) {
$search_pattern = \'@^([^:]+):\\s*(.*)$@\';
$replace_pattern = \'$2<br>\' . "\\n" . \'Quote: $1\';
return preg_replace( $search_pattern, $replace_pattern, $input );
}, 10, 2);
而且……如果您希望此修改支持本地化,您需要通过WordPress翻译功能运行“Quote from:”,但这也是一个单独的问题。
祝你好运