Laravel 3 - 使用wpautop作为库

时间:2013-06-06 14:56:22

标签: php wordpress laravel

我决定使用wordpress core的autop函数自动将换行符从textareas转换为<p><br>,并在我的库文件夹中使用它

(顺便说一句,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块代码可以工作但只有双换行符,我想保留我的{ {1}}Š

如果我只是将此函数的代码添加到与autop函数相同的文件中,则返回相同的错误,我不知道包含<br>函数的正确方法,我该怎么办?

1 个答案:

答案 0 :(得分:0)

我想我找到了答案。

我在_autop_newline_preservation_helper公共函数中插入了autop函数,现在它可以正常工作。

我真的不知道这是不是一个好主意,所以如果有人认为这可能导致问题,请打我。