Как добавить список существующих тегов в описание панели тегов в Gutenberg WordPress

Головоломка

Я работаю над пользовательской темой WordPress. Я создал пользовательские типы сообщений и пользовательские таксономии, некоторые из которых являются стилем тегов (а не стилем категорий). Все работает как надо, и соответствующие таксономии появляются там, где должны, в соответствующих типах контента ('show_in_rest' => true).

НО я хотел бы добавить список существующих на данный момент тегов к описанию в блоке тегов.

Сейчас в инструкциях для тегов написано: "Разделяйте запятыми или клавишей Enter". Я хотел бы добавить что-то вроде «Существующие теги:», а затем список тегов. В идеале это должно генерироваться динамически, чтобы по мере добавления клиентами новых тегов список обновлялся. Однако для конкретного сайта, над которым я работаю, даже статический текст был бы лучше, чем ничего.

Что у меня есть до сих пор

Я нашел кого-то, задавшего похожий вопрос, и попытался использовать код одного из ответов. Я использую модульный подход, поэтому я поместил enqueue_script в отдельный php-файл, который я require_once-инг...

В functions.php у меня есть:

...

require_once("lib/gutenberg/tag_options.php");

...

В tag_options.php у меня есть:

<?php

/**
 * Add a list of available tags to tag panels in the gutenberg editor.
 */
function radicati_tag_options() {
  wp_enqueue_script(
    'gutenberg-tag-options',
    get_stylesheet_directory_uri() . '/lib/gutenberg/tag_options.js',
    ['wp-blocks', 'jquery'],
    1.0,
    false
  );
}

add_action('enqueue_block_editor_assets', 'radicati_tag_options');

И в tag_options.js у меня есть:

window.onload = function() {

  // This is code I found on the internet, 
  // aimed at creating a custom panel...

  var el = wp.element.createElement;

  function customizeProductTypeSelector(OriginalComponent) {

    console.log(OriginalComponent);
    return function(props) {

      console.log(props.slug);

      // The slug of one of my custom tag-style taxonomies is "topic"
      // That's what I'm seeing in console.log, so I feel like I might
      // be on the right track!

      // Once I get this figured out, if need be I can write custom code
      // for each of my custom tag-style taxonomies :)

      if (props.slug === "topic") {

        return el("div", {}, "Product Type Selector");


        HELP! THIS IS WHERE IT ALL FALLS APART! 
        I CAN *REPLACE* THE CONTENTS OF THE TAG BLOCK 
        (AND THUS RENDER IT NOT A TAGS BLOCK ANYMORE) 

        BUT I JUST WANT TO ADD A PARAGRAPH CONTAINING 
        SOME TEXT, INCLUDING A LIST OF EXISTING TAGS 
        TO THE OTHERWISE PERFECTLY FUNCTIONAL BLOCK!


      } else {
        return el(OriginalComponent, props);
      }
    };
  }

  wp.hooks.addFilter(
    "editor.PostTaxonomyType",
    "my-custom-plugin",
    customizeProductTypeSelector
  );
};

ТИА

К сожалению, документация по работе с Гутенбергом все еще довольно неоднородна, так что это все, что я смог получить. Я признаю, что мой React такой же схематичный, так что это жалкое сочетание :laughing: Если у кого-то из вас есть какие-нибудь подсказки, чтобы бросить мне путь, я был бы очень признателен за вашу помощь!


person Meg Claypool    schedule 12.02.2020    source источник