Ich habe dieses Codefragment zu meinem functions.php
hinzugefügt, um eine Anforderung an einen benutzerdefinierten Beitragstyp zu senden und nach book_id
zu filtern.
add_filter( 'rest_gallery_query', function( $args ) {
$args['meta_query'] = array(
array(
'key' => 'book_id',
'value' => esc_sql( $_GET['book_id'] ),
)
);
return $args;
} );
damit kann ich eine Anfrage an ' http: // localhost: port/wp-json/wp/v2/gallery? book_id = 9780061992254 ' gallery
ist ein benutzerdefinierter Beitragstyp und bookd_id
ist einer seiner Benutzerdefinierte Felder
das Problem, das ich hier habe, ist, dass ich danach keine Anfragen mehr an /wp-json/wp/v2/gallery
ohne book_id
stellen kann, und ich muss es wirklich können. Wie kann ich diese Situation beseitigen? Ich habe nach einer Möglichkeit gesucht, diesen Parameter optional zu machen, aber noch nichts gefunden
Es ist nicht so schwer. Sie müssen lediglich eine Bedingung hinzufügen und prüfen, ob der Parameter book_id
übergeben wurde. Sie können sogar überprüfen, ob dieser Parameter korrekt ist (zum Beispiel, ob die book_id eine Zahl sein sollte, dann können Sie überprüfen, ob dies der Fall ist):
add_filter( 'rest_gallery_query', function( $args ) {
if ( trim($_GET['book_id']) ) { // check if book_id is passed and is not empty, but you can modify this condition
$args['meta_query'] = array(
array(
'key' => 'book_id',
'value' => trim( $_GET['book_id'] ), // <- you don't need to esc_sql this
)
);
}
return $args;
} );