web-dev-qa-db-fra.com

Balises de paragraphe supplémentaires dans un shortcode englobant

J'ai un shortcode pour créer des colonnes, tel que la page dans l'éditeur (vue texte) ressemble à ceci;

[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]

Malheureusement, lorsque sur la page, il apparaît comme ceci;

<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>

Maintenant, je ne veux pas supprimer toutes les balises <p> (en manipulant wpautop), alors comment puis-je traiter ce shortcode.

Le shortcode;

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

   return $content;
}

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

OK, il semblerait que quelqu'un a emprunté ce chemin et il y a en fait .... shortcode_unautop()

Travail accompli. Il semble élégant dans l'éditeur et fonctionne dans la sortie.

Le shortcode ressemble maintenant à ceci:

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