В редакторе 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;
}
Добро пожаловать в 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
);
Если вам нужна дополнительная информация, прочтите также комментарии к эта проблема с гитхабом.