Как создать несколько метабоксов в WordPress - PullRequest
0 голосов
/ 28 апреля 2020

Мне нужно создать несколько повторяющихся полей для пользовательского метабокса. Я пытаюсь с этим кодом, но он не будет работать, как я могу добавить несколько редакторов без необходимости регистрировать метабокс для каждого нужного мне wp_editor?

  public function uptheme_first_col_callback( $post )
  {
    wp_nonce_field( basename( __FILE__ ), 'col_nonce' );
    $col_title_field_value = get_post_meta( $post->ID );
    ?>
      <p>
        <a class="" id="add-column" href="#"><?php _e('Aggiungi colonna'); ?></a>
      </p>
      <p>
        <input type="text" class="widefat" name="col_title" id="meta-text" placeholder="<?php _e('Aggiungi Titolo'); ?>" value="<?php if( isset($col_title_field_value['_col_title']) ) echo $col_title_field_value['_col_title'][0]; ?>" />
      </p>
    <?php
    $field_value = get_post_meta( $post->ID, '_col', false );
    @wp_editor( $field_value[0], '_col' );
    ?>
    <script>
    (function($){
      var countEditors = 0;
      $('#add-column').on('click', (e) => {
        e.preventDefault();
        var editorId = 'editor-' + countEditors;
        // add editor in HTML as <textarea> with id editorId
        // give it class wp-editor
        wp.editor.initialize(editorId, true);
        countEditors++;
      });
    }(jQuery));

    </script>
    <?php
  }

  public function col_save( $post_id ) {
      // Checks save status
      $is_autosave = wp_is_post_autosave( $post_id );
      $is_revision = wp_is_post_revision( $post_id );
      $is_valid_nonce = ( isset( $_POST[ 'col_nonce' ] ) && wp_verify_nonce( $_POST[ 'col_nonce' ], basename( __FILE__ ) ) ) ? 'true' : 'false';
      // Exits script depending on save status
      if ( $is_autosave || $is_revision || !$is_valid_nonce ) {
          return;
      }
      // Checks for input and sanitizes/saves if needed
      if( isset( $_POST['_col'] ) ) {
          update_post_meta( $post_id, '_col', $_POST[ '_col' ] );
      }
      if( isset( $_POST['col_title'] ) ) {
        update_post_meta( $post_id, '_col_title', $_POST[ 'col_title' ] );
      }
  }

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

...