Rob Gelhausen
Ich versuche, einen benutzerdefinierten Endpunkt für die WordPress-REST-API zu erstellen und Parameter über die URL zu übergeben.
Der Endpunkt ist derzeit:
/wp-json/v1/products/81838240219
Was ich erreichen möchte, ist ein Endpunkt, der so aussieht und in der Lage ist, den Kennungsparameter im Rückruf abzurufen.
/wp-json/v1/products?identifier=81838240219
// Custom api endpoint test
function my_awesome_func( $data ) {
$identifier = get_query_var( 'identifier' );
return $identifier;
}
add_action( 'rest_api_init', function () {
register_rest_route( 'api/v1', '/products=(?P<id>\d+)', array(
'methods' => 'GET',
'callback' => 'my_awesome_func',
) );
} );
Zuerst müssen Sie die übergeben Namensraum zu register_rest_route
So was
add_action( 'rest_api_init', function () {
register_rest_route( 'namespace/v1', '/product/(?P<id>\d+)', array(
'methods' => 'GET',
'callback' => 'my_awesome_func',
) );
} );
Ihr Namensraum namespace/v1
und deine Route ist /product/{id}
so was
/namespace/v1/product/81838240219
und jetzt können Sie die Route so in Ihrer Funktion verwenden
function my_awesome_func( $data ) {
$product_ID = $data['id'];
}
Wenn Sie Optionen hinzufügen müssen, z.
/namespace/v1/product/81838240219?name=Rob
und verwenden Sie es innerhalb der Funktion wie folgt
function my_awesome_func( $data ) {
$product_ID = $data['id'];
$name = $data->get_param( 'name' );
}
Der Vorgang ist sehr einfach, erfordert jedoch, dass Sie dies lesen Dokumentation
Ich habe die bereitgestellte Antwort ein wenig geändert, um meinen gewünschten Endpunkt zu erhalten:
/wp-json/api/v1/product?identifier=81838240219
add_action( 'rest_api_init', function () {
register_rest_route( 'api/v1', '/product/', array(
'methods' => 'GET',
'callback' => 'ea_get_product_data',
) );
} );
function ea_get_product_data( $data ) {
$identifier = $data->get_param( 'identifier' );
return $identifier;
}
Wenn Sie alphanumerische Parameter übergeben möchten, verwenden Sie [a-zA-Z0-9-]
anstatt \d
add_action( 'rest_api_init', function () {
register_rest_route( 'namespace/v1', '/product/(?P<id>[a-zA-Z0-9-]+)', array(
'methods' => 'GET',
'callback' => 'my_awesome_func',
) );
} );
10035100cookie-checkBenutzerdefinierter WordPress-REST-API-Endpunkt mit URL-Parameteryes