web-dev-qa-db-ja.com

囲んでいるショートコード内の余分な段落タグ

エディタ(テキストビュー)のページがこのようになるように、列を作成するためのショートコードがあります。

[two-column]<ul>
    <li>Annual statutory accounts preparation</li>
    <li>Independent Examination service</li>
    <li>Audit file preparation</li>
    <li>Gift Aid returns</li>
    <li>Payroll</li>
</ul>[/two-column]
[two-column]<ul>
    <li>Bookkeeping service</li>
    <li>Management accounts</li>
    <li>Charity Commission administration service</li>
    <li>OSCR administration service</li>
    <li>Companies House administration service</li>
</ul>[/two-column]

残念ながら、このページに表示されるとこのように表示されます。

<p><div class="two-column">
<ul>
<li>Annual statutory accounts preparation</li>
<li>Independent Examination service</li>
<li>Audit file preparation</li>
<li>Gift Aid returns</li>
<li>Payroll</li>
</ul>
<p></div><br />
<div class="two-column">
<ul>
<li>Bookkeeping service</li>
<li>Management accounts</li>
<li>Charity Commission administration service</li>
<li>OSCR administration service</li>
<li>Companies House administration service</li>
</ul>
<p></div></p>
</div>

(wpautopを操作して)すべての<p>タグを削除したくないので、このショートコードをどのように処理しますか。

ショートコード

function column_shortcode($atts = [], $content = null)
{
   $content = '<div class="two-column">'.$content.'</div>';

   return $content;
}

add_shortcode('two-column', 'column_shortcode');
1
Chris Pink

さて、誰かがこの道を踏み出したようで、実際には……shortcode_unautop()

仕事が完了しました。エディタではエレガントに見え、出力では機能します。

ショートコードはこのようになりました。

function column_shortcode($atts = [], $content = null)
{
   $content = '<div class="two-column">'.$content.'</div>';

   $content = shortcode_unautop($content);

   return $content;
}

add_shortcode('two-column', 'column_shortcode');
1
Chris Pink