У меня возникают трудности с изменением или добавлением дополнительных классов к отдельным компонентам блоков wordpress. По сути, я просто хочу добавить класс или классы к некоторым частям, которые составляют некоторые из основных блоков wordpress, чтобы делать такие вещи, как добавление стиля начальной загрузки.
Примером этого может быть блок галереи изображений. Он работает достаточно хорошо для моих целей, но я могу захотеть сделать что-то вроде добавления класса «img-fluid» или «img-thumbnail» к изображениям, находящимся в этой галерее.
Я просмотрел документацию по фильтрам блоков, и я чувствую, что мой ответ будет лежать где-то там, просто я пока не знаю где.
Я пробовал использовать blocks.getBlockDefaultClassName, но это добавляет имя класса ко всему блоку, а не к отдельным частям, составляющим этот блок (например, изображениям в моем примере галереи).
Это пример, который они приводят в документации:
// Our filter function
function setBlockCustomClassName( className, blockName ) {
return blockName === 'core/code' ?
'my-plugin-code' :
className;
}
// Adding the filter
wp.hooks.addFilter(
'blocks.getBlockDefaultClassName',
'my-plugin/set-block-custom-class-name',
setBlockCustomClassName
);
Мне кажется, что blocks.getSaveContent.extraProps может делать то, что мне нужно, но я не знаю, как это использовать. Пример, который они используют, выглядит так:
function addBackgroundColorStyle( props ) {
return lodash.assign( props, { style: { backgroundColor: 'red' } } );
}
wp.hooks.addFilter(
'blocks.getSaveContent.extraProps',
'my-plugin/add-background-color-style',
addBackgroundColorStyle
);
Но даже если бы мне пришлось добавить дополнительное свойство, такое как имя класса, я бы подумал, что тогда мне нужно будет изменить фактические функции сохранения и редактирования (я предполагаю, используя больше фильтров блоков), чтобы затем использовать это имя класса при отображении этих частей ( в данном случае - изображения), и я тоже не знаю, как это сделать.
Мы будем благодарны за любые мысли или предложения по этому поводу.