我认为最简单的解决方案是为此使用自定义过滤器。它可能看起来像:
$schema = apply_filters(\'pluginA/register/country\', [
"type" => "string",
"description" => "The user\'s country",
"arg_options" => [
"sanitize_callback" => function( $value ) {
return sanitize_text_field( $value );
},
"validate_callback" => function( $value ) {
return is_string( $value );
},
]
]);
register_rest_field( "user", "country", [
"get_callback" => array( $this, "get_country" ),
"update_callback" => array( $this, "set_country" ),
"schema" => $schema,
]);
现在,在您的另一个插件中,您只需添加一个过滤器并添加所需的标志:
add_filter(\'pluginA/register/country\', function(array $schema): array {
$schema[\'required\'] = true;
return $schema;
});
当然,过滤器的名称可以自由选择,使用某种供应商前缀可能是有意义的,因此它不会与其他人定义的过滤器冲突。