169 lines
5.1 KiB
JSON
169 lines
5.1 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"label": {
|
|
"type": "string",
|
|
"description": "The field label displayed in the edit screen",
|
|
"minLength": 1
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"relationship"
|
|
],
|
|
"description": "Field type identifier. Must be \"relationship\" for this field type."
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The field name used to save/load data. Auto-generated from label if not provided.",
|
|
"pattern": "^[a-z_][a-z0-9_]*$"
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Unique field key. Auto-generated if not provided.",
|
|
"pattern": "^field_[a-z0-9]+$"
|
|
},
|
|
"instructions": {
|
|
"type": "string",
|
|
"description": "Instructions displayed to editors below the field label"
|
|
},
|
|
"required": {
|
|
"type": "boolean",
|
|
"description": "Whether this field is required",
|
|
"default": false
|
|
},
|
|
"conditional_logic": {
|
|
"type": [
|
|
"boolean",
|
|
"array"
|
|
],
|
|
"description": "Conditional logic rules. Set to false to disable, or provide rules array.",
|
|
"default": false
|
|
},
|
|
"wrapper": {
|
|
"type": "object",
|
|
"description": "HTML wrapper attributes",
|
|
"properties": {
|
|
"width": {
|
|
"type": "string",
|
|
"description": "Width percentage (e.g., \"50\")"
|
|
},
|
|
"class": {
|
|
"type": "string",
|
|
"description": "Custom CSS classes"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"description": "Custom HTML ID"
|
|
}
|
|
}
|
|
},
|
|
"default_value": {
|
|
"type": [
|
|
"string",
|
|
"number",
|
|
"boolean",
|
|
"null"
|
|
],
|
|
"description": "Default value when creating new content"
|
|
},
|
|
"placeholder": {
|
|
"type": "string",
|
|
"description": "Placeholder text shown in empty fields"
|
|
},
|
|
"prepend": {
|
|
"type": "string",
|
|
"description": "Text to prepend before the input"
|
|
},
|
|
"append": {
|
|
"type": "string",
|
|
"description": "Text to append after the input"
|
|
},
|
|
"maxlength": {
|
|
"type": "integer",
|
|
"description": "Maximum character length (if applicable)",
|
|
"minimum": 1
|
|
},
|
|
"allow_in_bindings": {
|
|
"type": "boolean",
|
|
"description": "Whether this field can be used in block bindings",
|
|
"default": false
|
|
},
|
|
"post_type": {
|
|
"type": "array",
|
|
"description": "Array of post types to query (e.g., [\"post\", \"page\"])",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": []
|
|
},
|
|
"taxonomy": {
|
|
"type": "array",
|
|
"description": "Array of taxonomy terms to filter by (e.g., [\"category:news\", \"post_tag:featured\"])",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": []
|
|
},
|
|
"min": {
|
|
"type": "integer",
|
|
"description": "Minimum number of items required (0 for no limit)",
|
|
"default": 0,
|
|
"minimum": 0
|
|
},
|
|
"max": {
|
|
"type": "integer",
|
|
"description": "Maximum number of items allowed (0 for no limit)",
|
|
"default": 0,
|
|
"minimum": 0
|
|
},
|
|
"filters": {
|
|
"type": "array",
|
|
"description": "Array of filters to display (search, post_type, taxonomy)",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"search",
|
|
"post_type",
|
|
"taxonomy"
|
|
]
|
|
},
|
|
"default": [
|
|
"search",
|
|
"post_type",
|
|
"taxonomy"
|
|
]
|
|
},
|
|
"elements": {
|
|
"type": "array",
|
|
"description": "Array of elements to display for each post (e.g., [\"featured_image\"])",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": []
|
|
},
|
|
"return_format": {
|
|
"type": "string",
|
|
"description": "Format of returned value",
|
|
"enum": [
|
|
"object",
|
|
"id"
|
|
],
|
|
"default": "object"
|
|
},
|
|
"bidirectional_target": {
|
|
"type": "array",
|
|
"description": "Array of field keys for bidirectional relationships",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": []
|
|
}
|
|
},
|
|
"required": [
|
|
"label",
|
|
"type"
|
|
]
|
|
} |