WordPress の core/file のデフォルト値を変更する方法
note
import { addFilter } from '@wordpress/hooks';
const myRegisterBlockFilter = (settings, name) => {
if (name === 'core/file') {
return {
...settings,
attributes: {
...settings.attributes,
showDownloadButton: {
type: 'boolean',
default: false,
}
}
}
}
return settings;
};
addFilter(
'blocks.registerBlockType',
'my/filter',
myRegisterBlockFilter
);
core ブロックを読み込む際に attributes
のデフォルト値を追加・変更する。
core/file
の displayPreview
に関してはファイル選択時に値を変更するようなのでどうしようもなかった。
多分ファイル選択時のフックはなかったはず……。
別件で registerBlockStyle
isDefault
が true
でも InspectorControls のボタンだけアクティブになって className
が当たってないことがあった。バグなのか仕様なのか自分の書き方が悪いのか良くわからなかったので attributes
の className
へデフォルト値を追加して対応した。
return {
...settings,
attributes: {
...settings.attributes,
className: {
type: 'string',
default: 'is-style-my-class',
}
}
}
初期値を別のスタイルへ変更したい場合に修正箇所が増えるのであまり良くないと思う。