简体   繁体   中英

How do I return $wpdb->get_results as json in WordPress?

I created a custom table in wordpress called custom_users and I want to access the records via the API

functions.php

function get_wp_custom_users()
{
    global $wpdb;

    $custom_users = $wpdb->get_results("SELECT * FROM wp_custom_users");

    foreach ($custom_users as $custom_user)
    {
        echo $custom_user->first_name.' '.$custom_user->last_name;
    }
}

add_action('rest_api_init', function()
{
    register_rest_route( 'wpcustomusers/v1', '/users/', array(
        'methods' => 'GET',
        'callback' => 'get_wp_custom_users'
    ));
});

The API can be accessed via url http://localhost/mywebsite/wp-json/wpcustomusers/v1/users

Do you know how can I return the results inside the for loop as JSON from the API request?

I hope to see all the fields returned.. Thanks for the help.

There is no need of foreach loop, make changes as below.

function get_wp_custom_users(){
  global $wpdb;

  $custom_users = $wpdb->get_results("SELECT * FROM wp_custom_users");

  //change as below.
  echo json_encode($custom_users);
}

var_dump $custom_users to make sure $custom_users is not empty. Skip for loop . Replace return with echo .

echo json_encode($custom_users);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM