加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – p标签格式在短代码的内容wordpress中

发布时间:2020-12-13 13:21:09 所属栏目:PHP教程 来源:网络整理
导读:我知道这一定要问过一百次,但我一直在尝试一些我能找到的解决方案,但似乎都没有. 我有一个包含内容的短代码: [important_note]Lorem ipsum dolor sit amet,consectetur adipiscing elit.Nam vel velit at ex congue aliquet.[/important_note] 我在function
我知道这一定要问过一百次,但我一直在尝试一些我能找到的解决方案,但似乎都没有.

我有一个包含内容的短代码:

[important_note]Lorem ipsum dolor sit amet,consectetur adipiscing elit.

Nam vel velit at ex congue aliquet.[/important_note]

我在functions.php中使用以下短代码函数:

function important_note( $atts,$content = null ) {
    return '<div class="imp-note">'.$content.'</div>';
}
add_shortcode("important_note","important_note");

这是生成的html代码:

<div class="imp-note">
    Lorem ipsum dolor sit amet,consectetur adipiscing elit.
    <p></p>
    <p>Nam vel velit at ex congue aliquet.</p>
</div>

主要问题是空的< p>我一直试图用这里提到的这些解决方案来解决这个问题:remove empty <p> tags from wordpress shortcodes via a php functon和Github然而这似乎解决了< p>包装短代码而不是短代码的内容.

第一行没有任何< p>包装有点奇怪,这让我觉得我应该在短代码函数中添加代码?

在此先感谢您的帮助.

UPDATE

好吧所以这段代码看起来像诀窍:

remove_filter( 'the_content','wpautop' );
add_filter( 'the_content','wpautop',99);
add_filter( 'the_content','shortcode_unautop',100 );

如下所示:https://stackoverflow.com/a/21460343/1275525和这里:http://www.paulund.co.uk/remove-line-breaks-in-shortcodes(删除wpautop()仅限短代码中的内容)

并且短代码中的内容必须像我上面所示的那样:

[important_note]
Lorem ipsum dolor sit amet,consectetur adipiscing elit.
Nam vel velit at ex congue aliquet.
[/important_note]

内容与短代码标签分开.该shortcode输出以下html:

<div class="imp-note">
    <p>Lorem ipsum dolor sit amet,consectetur adipiscing elit.</p>
    <p>Nam vel velit at ex congue aliquet.</p>
</div>

将确认它是否适用于所有短代码…

正如我在我的问题更新中提到的那样,在functions.php中的这段代码可以解决问题:
remove_filter( 'the_content',100 );

正如在这个问题的答案中看到的:https://stackoverflow.com/a/21460343/1275525和这篇文章:http://www.paulund.co.uk/remove-line-breaks-in-shortcodes(向下滚动到:删除wpautop()仅限短代码中的内容)

将短代码中的内容与短代码标签分开也很重要,否则第一行将不包含在< p>中.标签:

[important_note]
Lorem ipsum dolor sit amet,consectetur adipiscing elit.
Nam vel velit at ex congue aliquet.
[/important_note]

HTML输出:

<div class="imp-note">
    <p>Lorem ipsum dolor sit amet,consectetur adipiscing elit.</p>
    <p>Nam vel velit at ex congue aliquet.</p>
</div>

我已经检查了整个WordPress网站的短代码,并且都具有正确的格式.希望这有助于一些偷看:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读