web-dev-qa-db-fra.com

Récupérer tous les utilisateurs de la base de données wordpress via l'API REST/JSON

J'ai lu que l'API WP REST _ ne récupère que les utilisateurs ayant publié un message pour le blog. Je développe une application iOS et Android qui doit utiliser l'enregistrement Wordpress.

Comment puis-je récupérer une liste de tous les utilisateurs enregistrés sur mon blog Wordpress? Même ceux qui n'ont jamais écrit de post?

3
TimeParadox

Merci à l'utilisateur de stackoverflow Milap!

Vous pouvez obtenir tous les utilisateurs même s'ils n'ont créé aucune publication, pour cela vous devez modifier le plugin rest-api.

Ouvrez le fichier wp-content/plugins/rest-api/lib/endpoints/class-wp-rest-users-controller.php, vous trouverez ci-dessous le code correspondant à la ligne 106,

if ( ! current_user_can( 'list_users' ) ) {
    $prepared_args['has_published_posts'] = true;
}

Changez-le en dessous,

if ( ! current_user_can( 'list_users' ) ) {
    $prepared_args['has_published_posts'] = false;
}

Si vous ne voulez pas modifier le plugin, mettez le code ci-dessous dans le fichier functions.php du thème actuel.

add_filter( 'rest_user_query' , 'custom_rest_user_query' );
function custom_rest_user_query( $prepared_args, $request = null ) {
  unset($prepared_args['has_published_posts']);
  return $prepared_args;
}

Vous avez terminé.

Pour votre information: j'ai choisi de modifier le fichier API et cela a fonctionné.

2
TimeParadox