mirror of
git://develop.git.wordpress.org/
synced 2025-03-15 01:19:51 +01:00
Options: Add 'label' argument to register_setting.
The 'label' will displayed to users when editing core or custom settings via block editors. It avoids hardcoding Settings labels and improves extensibility. Backports https://github.com/WordPress/gutenberg/pull/59243. Props mamaduka, timothyblynjacobs, ellatrix. Fixes #61023. git-svn-id: https://develop.svn.wordpress.org/trunk@58230 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
5b9d094eaa
commit
6a8460b033
@ -2659,6 +2659,7 @@ function register_initial_settings() {
|
||||
'name' => 'title',
|
||||
),
|
||||
'type' => 'string',
|
||||
'label' => __( 'Title' ),
|
||||
'description' => __( 'Site title.' ),
|
||||
)
|
||||
);
|
||||
@ -2671,6 +2672,7 @@ function register_initial_settings() {
|
||||
'name' => 'description',
|
||||
),
|
||||
'type' => 'string',
|
||||
'label' => __( 'Tagline' ),
|
||||
'description' => __( 'Site tagline.' ),
|
||||
)
|
||||
);
|
||||
@ -2801,6 +2803,7 @@ function register_initial_settings() {
|
||||
array(
|
||||
'show_in_rest' => true,
|
||||
'type' => 'integer',
|
||||
'label' => __( 'Maximum posts per page' ),
|
||||
'description' => __( 'Blog pages show at most.' ),
|
||||
'default' => 10,
|
||||
)
|
||||
@ -2812,6 +2815,7 @@ function register_initial_settings() {
|
||||
array(
|
||||
'show_in_rest' => true,
|
||||
'type' => 'string',
|
||||
'label' => __( 'Show on front' ),
|
||||
'description' => __( 'What to show on the front page' ),
|
||||
)
|
||||
);
|
||||
@ -2822,6 +2826,7 @@ function register_initial_settings() {
|
||||
array(
|
||||
'show_in_rest' => true,
|
||||
'type' => 'integer',
|
||||
'label' => __( 'Page on front' ),
|
||||
'description' => __( 'The ID of the page that should be displayed on the front page' ),
|
||||
)
|
||||
);
|
||||
@ -2860,6 +2865,7 @@ function register_initial_settings() {
|
||||
),
|
||||
),
|
||||
'type' => 'string',
|
||||
'label' => __( 'Allow comments on new posts' ),
|
||||
'description' => __( 'Allow people to submit comments on new posts.' ),
|
||||
)
|
||||
);
|
||||
@ -2874,6 +2880,7 @@ function register_initial_settings() {
|
||||
* @since 4.7.0 `$args` can be passed to set flags on the setting, similar to `register_meta()`.
|
||||
* @since 5.5.0 `$new_whitelist_options` was renamed to `$new_allowed_options`.
|
||||
* Please consider writing more inclusive code.
|
||||
* @since 6.6.0 Added the `label` argument.
|
||||
*
|
||||
* @global array $new_allowed_options
|
||||
* @global array $wp_registered_settings
|
||||
@ -2887,6 +2894,7 @@ function register_initial_settings() {
|
||||
*
|
||||
* @type string $type The type of data associated with this setting.
|
||||
* Valid values are 'string', 'boolean', 'integer', 'number', 'array', and 'object'.
|
||||
* @type string $label A label of the data attached to this setting.
|
||||
* @type string $description A description of the data attached to this setting.
|
||||
* @type callable $sanitize_callback A callback function that sanitizes the option's value.
|
||||
* @type bool|array $show_in_rest Whether data associated with this setting should be included in the REST API.
|
||||
@ -2907,6 +2915,7 @@ function register_setting( $option_group, $option_name, $args = array() ) {
|
||||
$defaults = array(
|
||||
'type' => 'string',
|
||||
'group' => $option_group,
|
||||
'label' => '',
|
||||
'description' => '',
|
||||
'sanitize_callback' => null,
|
||||
'show_in_rest' => false,
|
||||
|
@ -237,6 +237,7 @@ class WP_REST_Settings_Controller extends WP_REST_Controller {
|
||||
|
||||
$default_schema = array(
|
||||
'type' => empty( $args['type'] ) ? null : $args['type'],
|
||||
'title' => empty( $args['label'] ) ? '' : $args['label'],
|
||||
'description' => empty( $args['description'] ) ? '' : $args['description'],
|
||||
'default' => isset( $args['default'] ) ? $args['default'] : null,
|
||||
);
|
||||
|
@ -781,4 +781,19 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase
|
||||
$this->assertSame( 2, $response->data['mycustomsetting']['test2'] );
|
||||
$this->assertSame( 3, $response->data['mycustomsetting']['test3'] );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 61023
|
||||
*/
|
||||
public function test_provides_setting_metadata_in_schema() {
|
||||
$request = new WP_REST_Request( 'OPTIONS', '/wp/v2/settings' );
|
||||
$response = rest_get_server()->dispatch( $request );
|
||||
$data = $response->get_data();
|
||||
$title = $data['schema']['properties']['title'];
|
||||
|
||||
$this->assertSame( 'string', $title['type'] );
|
||||
$this->assertSame( 'Title', $title['title'] );
|
||||
$this->assertSame( 'Site title.', $title['description'] );
|
||||
$this->assertSame( null, $title['default'] );
|
||||
}
|
||||
}
|
||||
|
@ -10738,88 +10738,105 @@ mockedApiResponse.Schema = {
|
||||
],
|
||||
"args": {
|
||||
"title": {
|
||||
"title": "Title",
|
||||
"description": "Site title.",
|
||||
"type": "string",
|
||||
"required": false
|
||||
},
|
||||
"description": {
|
||||
"title": "Tagline",
|
||||
"description": "Site tagline.",
|
||||
"type": "string",
|
||||
"required": false
|
||||
},
|
||||
"url": {
|
||||
"title": "",
|
||||
"description": "Site URL.",
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"required": false
|
||||
},
|
||||
"email": {
|
||||
"title": "",
|
||||
"description": "This address is used for admin purposes, like new user notification.",
|
||||
"type": "string",
|
||||
"format": "email",
|
||||
"required": false
|
||||
},
|
||||
"timezone": {
|
||||
"title": "",
|
||||
"description": "A city in the same timezone as you.",
|
||||
"type": "string",
|
||||
"required": false
|
||||
},
|
||||
"date_format": {
|
||||
"title": "",
|
||||
"description": "A date format for all date strings.",
|
||||
"type": "string",
|
||||
"required": false
|
||||
},
|
||||
"time_format": {
|
||||
"title": "",
|
||||
"description": "A time format for all time strings.",
|
||||
"type": "string",
|
||||
"required": false
|
||||
},
|
||||
"start_of_week": {
|
||||
"title": "",
|
||||
"description": "A day number of the week that the week should start on.",
|
||||
"type": "integer",
|
||||
"required": false
|
||||
},
|
||||
"language": {
|
||||
"title": "",
|
||||
"description": "WordPress locale code.",
|
||||
"type": "string",
|
||||
"required": false
|
||||
},
|
||||
"use_smilies": {
|
||||
"title": "",
|
||||
"description": "Convert emoticons like :-) and :-P to graphics on display.",
|
||||
"type": "boolean",
|
||||
"required": false
|
||||
},
|
||||
"default_category": {
|
||||
"title": "",
|
||||
"description": "Default post category.",
|
||||
"type": "integer",
|
||||
"required": false
|
||||
},
|
||||
"default_post_format": {
|
||||
"title": "",
|
||||
"description": "Default post format.",
|
||||
"type": "string",
|
||||
"required": false
|
||||
},
|
||||
"posts_per_page": {
|
||||
"title": "Maximum posts per page",
|
||||
"description": "Blog pages show at most.",
|
||||
"type": "integer",
|
||||
"required": false
|
||||
},
|
||||
"show_on_front": {
|
||||
"title": "Show on front",
|
||||
"description": "What to show on the front page",
|
||||
"type": "string",
|
||||
"required": false
|
||||
},
|
||||
"page_on_front": {
|
||||
"title": "Page on front",
|
||||
"description": "The ID of the page that should be displayed on the front page",
|
||||
"type": "integer",
|
||||
"required": false
|
||||
},
|
||||
"page_for_posts": {
|
||||
"title": "",
|
||||
"description": "The ID of the page that should display the latest posts",
|
||||
"type": "integer",
|
||||
"required": false
|
||||
},
|
||||
"default_ping_status": {
|
||||
"title": "",
|
||||
"description": "Allow link notifications from other blogs (pingbacks and trackbacks) on new articles.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
@ -10829,6 +10846,7 @@ mockedApiResponse.Schema = {
|
||||
"required": false
|
||||
},
|
||||
"default_comment_status": {
|
||||
"title": "Allow comments on new posts",
|
||||
"description": "Allow people to submit comments on new posts.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
@ -10838,11 +10856,13 @@ mockedApiResponse.Schema = {
|
||||
"required": false
|
||||
},
|
||||
"site_logo": {
|
||||
"title": "",
|
||||
"description": "Site logo.",
|
||||
"type": "integer",
|
||||
"required": false
|
||||
},
|
||||
"site_icon": {
|
||||
"title": "",
|
||||
"description": "Site icon.",
|
||||
"type": "integer",
|
||||
"required": false
|
||||
|
Loading…
x
Reference in New Issue
Block a user