Je sais que je peux utiliser le noeud final /wp-json/wp/v2/posts/{id}
pour récupérer un message.
Je construis une implémentation de WordPress qui repose entièrement sur l'API JSON et ses points de terminaison. Il s'agit d'une implémentation de SPAAngular, ce qui signifie que mes points d'ancrage doivent se déclencher lorsqu'une requête est effectuée via l'API.
En tant que tel, si je veux enregistrer des vues pour une publication, je voulais utiliser 'posts_selection'
. Ma première question est: est-ce que cela se déclenche si la sélection est faite via /wp-json/wp/v2/posts/{id}
Ma deuxième question est la suivante: existe-t-il un autre point d'ancrage ou quelque chose qui se déclenchera également lors d'une requête d'API pour un message mais qui transmettra le {id}
du message à ma fonction?
Parce que quand je fais ça:
function check_assembled_query( $query ) {
var_dump( $query );
}
add_action( 'posts_selection', 'check_assembled_query' );
$query
n'a pas l'information que je veux. Je voudrais le flux de travail suivant:
/wp-json/wp/v2/posts/{id}
de AngularJS.update_post_meta()
qui nécessite une publication id
. EDIT: Je suppose que post_selection
ne se déclenche pas pour l'API REST parce que lorsque je le fais:
function check_assembled_query( $query ) {
var_dump( $query );
die();
}
add_action( 'posts_selection', 'check_assembled_query' );
Je reçois le dump uniquement sur les requêtes régulières plutôt que sur les requêtes de l'API JSON.
Ma réponse initiale était totalement fausse, elle a donc été supprimée dans son intégralité.
Ni les hooks posts_selection
ni wp
ne sont activés lors de la demande d'API REST.
Le hook dont vous avez besoin est rest_pre_echo_response
. Ce hook passe trois paramètres:
Puisque vous avez besoin de l'ID de publication, vous pouvez faire quelque chose comme:
add_action( 'rest_pre_echo_response', function( $response, $object, $request ) {
//* Get the post ID
$post_id = $response[ 'id' ];
//* Make sure of the post_type
if( 'post' !== $response[ 'post' ] ) return;
//* Do something with the post ID
}, 10, 3 );