<div>
ワードプレスでは、ショートコードのコンテンツに沿っていくつかの s を出力しています。問題は、ワードプレスが段落を<p></p>
タグ内に配置するため、行がその場所で壊れていること<div>
です。私が達成したいのは<p> </p>
、ショートコードを囲む which をに置き換えること<br />
です。たとえば、コンテンツが次のようになっているとします。
<p>[shortcodes attr='somethig']value[/shortcode] text<br />
[shortcodes attr='somethig']value[/shortcode] text<br />
text<br />
text [shortcodes attr='somethig']value[/shortcode] text </p>
<p>text<br />
text [shortcodes attr='somethig']value[/shortcode] text<br />
text</p>
<p> text without shortcode </p>
<p>text [shortcodes attr='somethig']value[/shortcode] text </p>
変換する必要があります
<br/>[shortcodes attr='somethig']value[/shortcode] text<br />
[shortcodes attr='somethig']value[/shortcode] text<br />
text<br />
text [shortcodes attr='somethig']value[/shortcode] text <br />
<br/>text<br />
text [shortcodes attr='somethig']value[/shortcode] text<br />
text<br/>
<p> text without shortcode </p>
<br/>text [shortcodes attr='somethig']value[/shortcode] text <br/>
私は自分で問題を解決しようとしましたが、私の preg_replace 式は、個々の<p> </p>
ブロックではなく、コンテンツ全体をキャプチャしていました。
jQuery を使用したソリューションも問題ありません (ただし、ショートコードの代わりに<div>
、特定のクラスの a を段落に含める必要があります)。
LE: 次の jQuery が機能しました。ただし、PHP でより洗練されたソリューションを待っています。
$('p').each(function() {
if ($(this).next().find('.measurement_value').length > 0)
{
$(this).replaceWith( '<br />' + $(this).html());
}
});