Skip to content

Filters ​

Data model and fields ​

FilterChanges
vxframework/fieldsets/field_typesThe registered field types (type => class)
vxframework/fieldsets/field_type_categoriesThe 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_messagesValidation 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_profilesConditional 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_operatorsLocation 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_taxonomiesTaxonomies 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_configMarkdown conversion
vxframework/fieldsets/ui_html/allowed_tagsHTML 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_verticesThe hard ceiling for Area points (default 10,000)
vxframework/geo/geocoding_providers( array $providers, array $settings ) geocoding providers
vxframework/system_post_types, vxframework/system_taxonomiesWhich post types and taxonomies count as system and are hidden

Block editor and dynamic data ​

FilterChanges
vxframework/dynamic-data/groups, …/modifiers, …/builtinsData groups, modifiers and # builtins
vxframework/dynamic-data/supported-blocksThe map of bindable blocks and attributes
vxframework/dynamic-data/block-overridesPer-block allow, deny or restrict entries
vxframework/dynamic-data/block-handlersHandlers that update dependent block attributes (image sizes, video details)
vxframework/dynamic-data/default_currencyThe 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/rulesVisibility 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 ​

FilterChanges
vxframework/config/pathsFolders VX reads JSON config files from (see JSON files)
vxframework/config/lockedWhether 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_configThe config compared to detect "no change"
vxframework/config/import_session_ttlDraft import lifetime (default 1 day, minimum 1 hour)
vxframework/config/import_receipt_ttlFinished import receipt lifetime (default 30 days)
vxframework/config/import_batch_size, vxframework/config/import_rollback_batch_sizeItems per import or rollback batch (default 10, maximum 50)

AI and abilities ​

FilterChanges
vxframework/abilities/activity/max_entriesActivity 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_context and can_edit_entity, all under vxframework/fieldsets/; the action vxframework/fields/prime (fired by \VxFramework\Post::prime()).
  • Markdown: vxframework/render_markdown, the renderer behind \VxFramework\render_markdown().
  • Locations: location_objects, location_pools, location_target_exists and location_target_label, under vxframework/fieldsets/.
  • Migrations: migration_storage, migration_storage_label, migration_kinds and migration_source_in_use, under vxframework/fieldsets/; the actions vxframework/fieldsets/config_changed, transaction_started and transaction_finished.
  • Dynamic data: site_field, site_catalog, can_read_site_path, entity_access, entity_catalog, preview_entity and preview_sources, under vxframework/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_results and field_type_shape, under vxframework/abilities/.
  • Content and REST: vxframework/rest/prefetched_value, vxframework/rest/user_exposed; the actions vxframework/rest/terms_changed, users_changed and viewer_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.

Documentation for the VX Framework.