Wordpress шорткод - тип ввода tinyMCE не работает правильно - PullRequest
0 голосов
/ 28 марта 2020

Я создал шорткод WordPress для отображения простого баннера с плавающей рамкой из двух столбцов. В шорткоде используется стандартный API WordPress Shortcode в сочетании с функцией fusion_builder_map () для добавления шорткода в внутренний редактор Avada Theme Fusion Builder.

В редакторе WordPress возникают проблемы с типом ввода tinyMCE. Когда содержимое вводится в редактор, оно обычно исчезает перед сохранением страницы, если я не переключу редактор в текстовый режим, а затем не нажму «Сохранить». Кроме того, поле tinyMCE, по-видимому, также неправильно принимает мультимедиа, просто обычный текст.

Это также происходит в других инструментах визуального редактора, таких как визуальный редактор WP Bakery, снова с использованием поля tinyMCE в пользовательском шорткод.

Кто-нибудь может пролить свет на это? Спасибо

<?php

function nu_hero_gradient($atts, $content = null) {

  //1. create attributes
  extract(shortcode_atts([
    'title' =>'',
    'leftcol' =>'',
    'rightcol' =>''
  ], $atts));

  //2. begin output buffer

ob_start(); ?>
<div class="nu-hero-gradient">
  <h1 class="nu-title"><?php echo $title; ?></h1>
</div>
 <div class="nu-hero-grey-box">
   <div class="nu-hero-grey-box-left"><?php echo $leftcol; ?></div>
   <div class="nu-hero-grey-box-right"><?php echo $rightcol; ?></div>
 </div>

  <?php return ob_get_clean();

  //end output buffer

}
//end function

//4. add shortcode
add_shortcode('nu_hero_gradient', 'nu_hero_gradient');

//5. register shortcode with fusion builder


function register_nu_hero_gradient() {

  fusion_builder_map( 
      array(
          'name'            => esc_attr__( 'Hero Gradient', 'fusion-builder' ),
          'shortcode'       => 'nu_hero_gradient',
          'icon'       => 'fusiona-newspaper',
          'allow_generator' => true,
          'params'          => array(
              array(
                  'type'        => 'textfield',
                  'heading'     => esc_attr__( 'Title', 'fusion-builder' ),
                  'description' => esc_attr__( 'Title', 'fusion-builder' ),
                  'param_name'  => 'title',
                  'value'       => '',
              ),
              array(
                'type'        => 'tinymce',
                'heading'     => esc_attr__( 'Left Column', 'fusion-builder' ),
                'description' => esc_attr__( 'Left Content', 'fusion-builder' ),
                'param_name'  => 'leftcol',
                'value'       => esc_attr__( 'Click edit button to change this text.', 'fusion-builder' ),
                          'placeholder' => true,
               ),
               array(
                'type'        => 'tinymce',
                'heading'     => esc_attr__( 'Right Column', 'fusion-builder' ),
                'description' => esc_attr__( 'Right Content', 'fusion-builder' ),
                'param_name'  => 'rightcol',
                'value'       => esc_attr__( 'Click edit button to change this text.', 'fusion-builder' ),
                          'placeholder' => true,
               ),
          ),
      ) 
  );
  }
  add_action( 'fusion_builder_before_init', 'register_nu_hero_gradient' );

...