Filters
Data model and fields
| Filter | Changes |
|---|---|
vxframework/fieldsets/field_types | The registered field types (type => class) |
vxframework/fieldsets/field_type_categories | The field type categories and their order in the Add Field picker, for types registered under a category of their own |
vxframework/fieldsets/validation_rules | ( array $rules, array $field ) the rules a field is checked against in the editor and on save (see Custom validation) |
vxframework/fieldsets/validation_messages | Validation message templates |
vxframework/fieldsets/validation_check | ( ?bool $valid, array $rule, $value ) the result of a rule type of your own: false fails the value |
vxframework/fieldsets/condition_operators, vxframework/fieldsets/condition_profiles | Conditional logic operators and per-type profiles |
vxframework/fieldsets/condition_compare | ( bool $result, string $profile, string $operator, $value, $expected ) a comparison's result |
vxframework/fieldsets/location_objects, …/location_sources, …/location_operators | Location types, targeting conditions and their operators |
vxframework/fieldsets/location_condition_match | ( ?bool $result, $source, $operator, $value, $object_kind, $entity, $viewer ) a condition's result |
vxframework/fieldsets/location_group_match | ( bool $pass, array $group, $object_kind, $entity, $viewer ) a whole Location's result |
vxframework/fieldsets/taxonomy_field/available_taxonomies | Taxonomies offered to Taxonomy fields |
vxframework/fieldsets/source/{type}/query_args, …/{type}/query_args/{field_key} | ( array $args, array $field, array $context ) query arguments for Select Post / Select User / Taxonomy pickers |
vxframework/fieldsets/rich_text/allowed_tags | ( array $allowed, array $field ) HTML allowed in Rich text |
vxframework/fieldsets/rich_text/render | ( string $html, array $field, $value ) rendered Rich text |
vxframework/fieldsets/meta_rest_contexts | ( array $contexts ) the WordPress REST contexts fieldset post meta is readable in (default [ 'edit' ]; edit is always kept for the block editor) |
vxframework/fieldsets/markdown/pre_render, …/post_render, …/converter_config | Markdown conversion |
vxframework/fieldsets/ui_html/allowed_tags | HTML allowed in UI HTML fields |
vxframework/fieldsets/media/pre_upload, vxframework/fieldsets/files/pre_upload | ( $result, $file, $field, $fieldset, $entity_id, $user_id ) return a WP_Error or a message string to refuse an upload (both run for every field upload) |
vxframework/fieldsets/media/scan_result, vxframework/fieldsets/files/scan_result | ( $result, $upload, … ) return an error to reject an uploaded file, for example after a malware scan |
vxframework/geo/area_absolute_max_vertices | The hard ceiling for Area points (default 10,000) |
vxframework/geo/geocoding_providers | ( array $providers, array $settings ) geocoding providers |
vxframework/system_post_types, vxframework/system_taxonomies | Which post types and taxonomies count as system and are hidden |
Block editor and dynamic data
| Filter | Changes |
|---|---|
vxframework/dynamic-data/groups, …/modifiers, …/builtins | Data groups, modifiers and # builtins |
vxframework/dynamic-data/supported-blocks | The map of bindable blocks and attributes |
vxframework/dynamic-data/block-overrides | Per-block allow, deny or restrict entries |
vxframework/dynamic-data/block-handlers | Handlers that update dependent block attributes (image sizes, video details) |
vxframework/dynamic-data/default_currency | The currency for currency_format (default USD) |
vxframework/dynamic-data/currency_format | ( null, $amount, $code, $always_fraction ) return a string to format currency yourself |
vxframework/visibility/rules | Visibility rule classes |
vxframework/visibility/rule_match | ( bool $result, array $rule, Context $context ) a rule's result |
REST API
vxframework/rest/can_read, vxframework/rest/can_write, vxframework/rest/field_value, vxframework/rest/resource_response, vxframework/rest/schema, vxframework/rest/throttle, vxframework/rest/max_per_page and vxframework/rest/user_role_exposed. See Extending the REST module.
Config, revisions, and imports
| Filter | Changes |
|---|---|
vxframework/config/paths | Folders VX reads JSON config files from (see JSON files) |
vxframework/config/locked | Whether configuration is locked (default: VXFRAMEWORK_CONFIG_LOCKED) |
vxframework/config_revisions/max_per_entity | ( 15, $entity_type, $key ) revisions kept per object |
vxframework/config_revisions/record | ( true, $entity_type, $key, $config ) return false to skip recording |
vxframework/config_revisions/canonical_config | The config compared to detect "no change" |
vxframework/config/import_session_ttl | Draft import lifetime (default 1 day, minimum 1 hour) |
vxframework/config/import_receipt_ttl | Finished import receipt lifetime (default 30 days) |
vxframework/config/import_batch_size, vxframework/config/import_rollback_batch_size | Items per import or rollback batch (default 10, maximum 50) |
AI and abilities
| Filter | Changes |
|---|---|
vxframework/abilities/activity/max_entries | Activity log rows kept (default 1,000) |
vxframework/abilities/activity/record | ( true, array $entry ) return false to skip logging an entry |
Internal
vxframework/modules (the modules VX loads), vxframework/config/no_autoload_groups (config groups kept out of WordPress's autoloaded options), vxframework/fieldsets/drivers, vxframework/fieldsets/storage_strategies, vxframework/fieldsets/sources, vxframework/fieldsets/editor_configs and vxframework/fieldsets/migration_executors exist for VX's own architecture, and so do these:
- Config:
vxframework/config/groups,vxframework/config/field_references,vxframework/object_keys/validator. - Fields and fieldsets:
vxframework/fieldsets/choice_sources,normalize_choice_field,resolved_fields,expand_fields,key_reuse_hint,resolved_field_owner,is_hard_value_error,runtime_editor_modes,editor_response,source_contextandcan_edit_entity, all undervxframework/fieldsets/; the actionvxframework/fields/prime(fired by\VxFramework\Post::prime()). - Markdown:
vxframework/render_markdown, the renderer behind\VxFramework\render_markdown(). - Locations:
location_objects,location_pools,location_target_existsandlocation_target_label, undervxframework/fieldsets/. - Migrations:
migration_storage,migration_storage_label,migration_kindsandmigration_source_in_use, undervxframework/fieldsets/; the actionsvxframework/fieldsets/config_changed,transaction_startedandtransaction_finished. - Dynamic data:
site_field,site_catalog,can_read_site_path,entity_access,entity_catalog,preview_entityandpreview_sources, undervxframework/dynamic_data/. - Abilities:
requested_name,domains,delete_abilities,content_undo_abilities,state_hash,entity_catalog,entity_catalog_schema,blueprint_contexts,blueprint_fieldsets,search_kinds,search_resultsandfield_type_shape, undervxframework/abilities/. - Content and REST:
vxframework/rest/prefetched_value,vxframework/rest/user_exposed; the actionsvxframework/rest/terms_changed,users_changedandviewer_dependent. - Health:
vxframework/health/tables. - Client:
vxframework/client/script_source(where an app bundle loads from; the development checkout serves it from Vite).
Changing them isn't supported and may break on update.
Technical details for LLMs
- Filters for adding capabilities are covered with examples in Developers → Extending: groups, modifiers, builtins, visibility rules, abilities.
- Upload filters run on uploads through VX field endpoints (
vx-framework/v1/fieldsets/{key}/files/upload/{entity_id}) and the media-modal bridge; they don't run for uploads made directly in the media library.