如何从包装短代码中的每个html元素中删除p标记

如何从包装短代码中的每个html元素中删除p标记,html,wordpress,shortcode,Html,Wordpress,Shortcode,在我的示例中,我使用了短代码来显示产品列表。我添加了如下html <article class="teaser product tepr prio "> <a href="http://localhost/svenskkinesiska/resor/sichuans-parlor/"> <div class="itemwrap"> <img class="img-responsive " src="http://localhost/svenskkines

在我的示例中,我使用了短代码来显示产品列表。我添加了如下html

<article class="teaser product tepr prio ">
<a href="http://localhost/svenskkinesiska/resor/sichuans-parlor/">
<div class="itemwrap">
<img class="img-responsive " src="http://localhost/svenskkinesiska/wp-content/uploads/2016/12/banner2@2x-1920x740-c-center-373x239-c-center.png" srcset="http://localhost/svenskkinesiska/wp-content/uploads/2016/12/banner2@2x-1920x740-c-center-530x340-c-center.png 768w, http://localhost/svenskkinesiska/wp-content/uploads/2016/12/banner2@2x-1920x740-c-center-767x492-c-center.png 1400w" alt="SICHUANS PÄRLOR" />
<div class="itemtextwrap">
<div class="teprb">
<div class="middlecenter">
<h3><span>Sichuans pärlor</span></h3>
</div>
</div>
<span class="duration">8 DAGAR - </span><span class="price">fr 1:-</span></div>
<div class="cprice_cdays small">
<div class="tableBased">
<div class="tableCelled"><span class="cprice">8 dagar, pris från </span><span class="cdays">1</span></div>
</div>
</div>
</div>
</a></article>

但它是来如下与额外的p标签。我试过wpautop,但没用。如何解决这个问题?欢迎提供任何帮助/建议

<article class="teaser product tepr prio ">
<a href="http://localhost/svenskkinesiska/resor/sichuans-parlor/"></p>
<div class="itemwrap">
<img class="img-responsive " src="http://localhost/svenskkinesiska/wp-content/uploads/2016/12/banner2@2x-1920x740-c-center-373x239-c-center.png" srcset="http://localhost/svenskkinesiska/wp-content/uploads/2016/12/banner2@2x-1920x740-c-center-530x340-c-center.png 768w, http://localhost/svenskkinesiska/wp-content/uploads/2016/12/banner2@2x-1920x740-c-center-767x492-c-center.png 1400w" alt="SICHUANS PÄRLOR" /></p>
<div class="itemtextwrap">
<div class="teprb">
<div class="middlecenter">
<h3><span>Sichuans pärlor</span></h3>
</div>
</div>
<p><span class="duration">8 DAGAR - </span><span class="price">fr 1:-</span></div>
<div class="cprice_cdays small">
<div class="tableBased">
<div class="tableCelled"><span class="cprice">8 dagar, pris från </span><span class="cdays">1</span></div>
</div>
</div>
</div>
<p></a></article>

您可以使用jquery执行此操作:

$("b").each(function() {
$(this).replaceWith(this.childNodes);
});
注意:这将保留您在where.text()中拥有的任何HTML,这些HTML可能会对其进行转换。 如果您真的想剥去衣服,您可以使用:

$("p").html(function(i,h){ return h.replace(/<b>/g,'').replace(/<\/b>/g,''); });
html(函数(i,h){返回h.replace(//g',).replace(//g',);}); 或
result=str.replace(/(]+?>)/img,”

或者试试这个:

 `var str = "Some awesome text with a <p class='myClass'>new paragraph</p> and more text.";

    var $temp = $("<div>").html(str);
    $temp.find("p").each(function() { $(this).replaceWith(this.childNodes); });

    var output = $temp.html();`
`var str=“一些很棒的文本,带有

新段落和更多文本。”; var$temp=$(“”).html(str); $temp.find(“p”).each(function(){$(this.replacetwith(this.childNodes);}); var输出=$temp.html()`


这是众所周知的
WordPress
问题,这里有一些解决方案:,@SergeyLebedev这两个解决方案都不起作用。第一个解决方案什么也没做,而第二个解决方案只是没有显示html。