输出metabox文本区域并避免li标记内的换行符

时间:2018-09-26 作者:agahi

我添加了一个自定义元框,其中包含textarea 在数据库中。现在,如果我只是简单地像这样回应元框:

$post_meta = get_post_meta($pid);
$answer = $post_meta["answer"][0];
echo $answer;
html标记将被转义,文本将如下所示:

blah blah blah <ul><li>blah blah</li><li>blah</li></ul>
正如您所看到的,html标记被转义,它们显示为字符串,因此我使用php如下:

$answer = html_entity_decode($answer);
现在html标记按预期工作,但仍然存在一个问题。为了从数据库中获取换行符,我添加了另一行,如下所示:

    $answer = nl2br($answer);
这解决了换行符的问题,但在每个li标记之间添加了一个新的换行符。

有没有办法解决这个问题?我需要换行符,但同时希望避免在li标记之间添加换行符。

UPDATE: 目前,我在nl2br之后添加了这行php,得到了结果

    $answer = preg_replace("!</li>[\\s\\S]{1,100}?<!", "</li><", $answer);
但我认为这不是正确的方式。

2 个回复
SO网友:T.Todua

在内部添加换行符的步骤<textarea> (但不在前端输出上),在内部使用textarea:

echo str_replace(\'</li>\',"</li>\\r\\n", $answer);

SO网友:Adnan

Why don\'t you use <?php esc_textarea( $answer ); ?>

结束