Использование шорткода внутри шорткода

Клиент использует WPBakery, и форма загружается в атрибут описания шорткода. Обычно вы вытаскиваете форму по ее шорткоду, но в демонстрационной версии шаблона форма вытягивается строкой, начинающейся с хэштега.

E-8_JTVCbWM0d3BfZm9ybSUyMGlkJTNEJTIyNDc0JTIyJTVE

[trx_sc_title title_style="accent" title_align="left" link_style="default" title="Stay Tuned for Our Updates" subtitle="newsletter signup" description="#E-8_JTVCbWM0d3BfZm9ybSUyMGlkJTNEJTIyNDc0JTIyJTVE"]

эквивалентно:

[trx_sc_title title_style="accent" title_align="left" link_style="default" title="Stay Tuned for Our Updates" subtitle="newsletter signup" description="[mc4wp_form id="474"]"]

Мне нужно получить другую форму из ninjaforms( [ninja_form id=3] ) вместо формы mailchimp в примере. Как преобразовать шорткод так же, как это сделали они?

Заранее спасибо за любое понимание того, что здесь происходит.


person Britton Pentakill    schedule 12.06.2020    source источник


Ответы (1)


используйте два шорткода. чтобы не было сложностей.

function kp_shortcode1($atts, $content = null)
{
    ob_start();
    ?>

    <div class="sc1-section">
       <?php echo do_shortcode($content); ?>
    </div>

    <?php
    $output = ob_get_clean();
    return $output;
}

add_shortcode('kp_shortcode1', 'kp_shortcode1');


function kp_shortcode2($atts, $content = null)
{
    ob_start();
    ?>

    <div class="sc2-section">
      <h1>shortcode 2 content</h1>
    </div>

    <?php
    $output = ob_get_clean();
    return $output;
}

add_shortcode('kp_shortcode2', 'kp_shortcode2');

Внутри использования бэкэнда wordpress

[kp_shortcode1]

[kp_shortcode2]

[kp_shortcode2]

[kp_shortcode2]

[/kp_shortcode1]

Выход будет:

<div class="sc1-section">


  <div class="sc2-section">
      <h1>shortcode 2 content</h1>
  </div>

  <div class="sc2-section">
      <h1>shortcode 2 content</h1>
  </div>

  <div class="sc2-section">
      <h1>shortcode 2 content</h1>
  </div>


</div>
person kd patel    schedule 12.06.2020