我决定使用 wordpress core 中的 autop 函数自动将换行符从 textareas 转换为<p>
s 和<br>
s,并在我的库文件夹中使用它
(顺便说一句,Laravel 没有任何本地方式这样做,对吗?如果有的话,我会觉得很愚蠢)
所以在myproject/application/libraries/formatting.php
我有以下内容:
class Formatting {
public function autop($pee, $br = true) {
[wpautop's code here]
}
}
并将其称为
Formatting::autop($text);
所以它返回这个错误
preg_replace_callback(): Requires argument 2, '_autop_newline_preservation_helper', to be a valid callback
它与以下块有关
if ( $br ) {
$pee = preg_replace_callback('/<(script|style).*?<\/\\1>/s', '_autop_newline_preservation_helper', $pee);
$pee = preg_replace('|(?<!<br />)\s*\n|', "<br />\n", $pee); // optionally make line breaks
$pee = str_replace('<WPPreserveNewline />', "\n", $pee);
}
需要此功能为他服务
function _autop_newline_preservation_helper( $matches ) {
return str_replace("\n", "<WPPreserveNewline />", $matches[0]);
}
该函数显然负责将单换行符转换为<br>
标签,如果我删除该if
代码块,则代码可以工作,但只能使用双换行符,我想保留我<br>
的 s
如果我只是将此函数的代码添加到与 autop 函数相同的文件中,它会返回相同的错误,我不知道包含该_autop_newline_preservation_helper
函数的正确方法,我该怎么办?