wp_mark_auto_generate_control_attributes()
Marks user-defined attributes for auto-generated inspector controls.
This filter runs during block type registration, before the WP_Block_Type is instantiated. Block supports add their attributes AFTER the block type is created (via WP_Block_Supports::register_attributes()), so any attributes present at this stage are user-defined.
The marker tells generateFieldsFromAttributes() which attributes should get auto-generated inspector controls. Attributes are excluded if they:
- Have a
'source'(HTML-derived, edited inline not via inspector) - Have role
'local'(internal state, not user-configurable) - Have an unsupported type (only
'string','number','integer','boolean'are supported) - Were added by block supports (added after this filter runs)
Внутренняя функция — эта функция рассчитана на использование самим ядром. Не рекомендуется использовать эту функцию в своем коде.
Хуков нет.
Возвращает
array<string, mixed>. Modified block type arguments.
Использование
wp_mark_auto_generate_control_attributes( $args ): array;
- $args(array<string, mixed>) (обязательный)
- Array of arguments for registering a block type.
Список изменений
| С версии 7.0.0 | Введена. |
Код wp_mark_auto_generate_control_attributes() wp mark auto generate control attributes WP 7.1.4
function wp_mark_auto_generate_control_attributes( array $args ): array {
if ( empty( $args['attributes'] ) || ! is_array( $args['attributes'] ) ) {
return $args;
}
$has_auto_register = ! empty( $args['supports']['autoRegister'] );
if ( ! $has_auto_register ) {
return $args;
}
foreach ( $args['attributes'] as $attr_key => $attr_schema ) {
// Skip HTML-derived attributes (edited inline, not via inspector).
if ( ! empty( $attr_schema['source'] ) ) {
continue;
}
// Skip internal attributes (not user-configurable).
if ( isset( $attr_schema['role'] ) && 'local' === $attr_schema['role'] ) {
continue;
}
// Skip unsupported types (only 'string', 'number', 'integer', 'boolean' are supported).
$type = $attr_schema['type'] ?? null;
if ( ! in_array( $type, array( 'string', 'number', 'integer', 'boolean' ), true ) ) {
continue;
}
$args['attributes'][ $attr_key ]['autoGenerateControl'] = true;
}
return $args;
}