Как изменить панель компонентов категории WP Gutenberg?

В редакторе Gutenberg я пытаюсь изменить панель категорий (ту, что справа, где я выбираю категории, в которые будет помещен мой пост). Не должно быть возможности добавить сообщение в категорию, если в этой категории есть дочерние категории. Поскольку категории статичны, можно использовать идентификатор категории.

Моя идея состояла в том, чтобы использовать enqueue_block_editor_assets и добавить некоторый javascript, чтобы отключить флажок через идентификатор элемента. Это не работает, элемент не найден :-(

Это мой нефункциональный код до сих пор:

functions.php:

function gutenberg_enqueue()
{
    wp_enqueue_script(
        'gutenberg-additions-script',
        get_stylesheet_directory_uri().'/gutenberg-additions.js',
        array(), true, true
    );
}
add_action('enqueue_block_editor_assets', 'gutenberg_enqueue', 999);

(Я использую get_stylesheet_directory_uri(), потому что я в дочерней теме)

Гутенберг-дополнения.js:

window.onload = function () {
    var cat1 = document.getElementById('editor-post-taxonomies-hierarchical-term-1');
    if (cat1 != null) {
        cat1.disabled = true;
    }
Как убрать количество товаров в категории WooCommerce
Как убрать количество товаров в категории WooCommerce
По умолчанию WooCommerce показывает количество товаров рядом с категорией, как показано ниже.
1
0
968
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Добро пожаловать в Stackoverflow. Об этом есть пример в файле каталог гитхаба гутенберга. Он написан в старом синтаксисе es5, но его легко перенести в esnext. Он использует фильтр editor.PostTaxonomyType для редактирования компонента таксономии.

var el = wp.element.createElement;

function customizeProductTypeSelector( OriginalComponent ) {
    return function( props ) {
        if ( props.slug === 'product-type' ) {
            return el(
                'div',
                {},
                'Product Type Selector'
            );
        } else {
            return el(
                OriginalComponent,
                props
            );
        }
    }
};

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

Если вам нужна дополнительная информация, прочтите также комментарии к эта проблема с гитхабом.

Другие вопросы по теме