Intereting Posts
короткий код вызова в javascript max_num_pages говорит 4, но я могу только перейти на третью страницу Плагин для художников, событий и мест проведения Как удалить черновики страниц без влияния на опубликованную страницу All Import Plugin – обновить все сообщения после импорта cron Пользовательское определение типа сообщения не должно быть в теме – как? добавление метаданных с использованием плагина на вершину головы Как обрабатывать текст с помощью функции __ (? pre_get_posts с get_posts Как удалить панель администратора WordPress в панели управления Как ссылаться на страницу параметров тем из любого места в админ? Как правильно протестировать метод, вызываемый действием Нелинейные анкеты в WordPress Путаница в том, как использовать персонализированные типы сообщений, пользовательскую таксономию или категорию? Изменить категории товаров Woocommerce Widget 'Title' на основе категории продуктов

Расширение API-интерфейса WordPress с помощью специального интерфейса

В настоящее время я работаю над сайтом WordPress, который использует WP REST API для операций, не связанных напрямую с экосистемой WordPress. Поскольку сайт построен на WordPress, я хочу использовать его REST api и настроить его для моих нужд. Поэтому у меня есть пара таблиц базы данных рядом с тегами WordPress, и мне нужно запросить эти таблицы с помощью REST api. Я пытаюсь понять, как вернуть соответствующий результат запроса обратно в функцию контроллера. Должен быть JSON, но я все еще не уверен, как из-за того, что стандартные функции API REST API абстрагируют большинство запросов. Я должен также указать, что я очень новичок в WordPress, и я не работал с php некоторое время.

Это то, что у меня есть в functions.php :

/** Game REST API ***************/ //routes add_action('rest_api_init', function(){ register_rest_route('api/v1', 'player/(?P<id>\d+)', array( 'methods' => 'GET', 'callback' => 'retrieve_player_by_id', 'args' => array( 'id' => array( 'validate_callback' => function($param, $request, $key){ return is_numeric($param); } ), ) )); }); //controller function retrieve_player_by_id($data){ require_once('api/game_interface.php'); $interface = new Game_Interface(); $player = $interface->get_player_by_id($data['id']); if (empty($player)){ return new WP_Error( 'no_player', 'Player not found', array( 'status' => 400 ) ); } return $player; } 

И это мой класс интерфейса:

 class Game_Interface { function __construct(){ global $wpdb; $this->db = $wpdb; } function get_player_by_id($id){ $wpdb->show_errors = TRUE; $result = $wpdb->get_results("SELET * FROM player WHERE id = $id"); if(!$result){ $wpdb->print_error(); } return $result; } } 

Класс выше должен запрашивать базу данных и возвращать результаты, а не уверен, как вернуть эти результаты в класс контроллера. Должен ли я использовать mysqli_query вместо get_results ? В настоящее время возвращается 500, я пробовал другие способы запросить базу данных, но безуспешно. Спасибо!

Solutions Collecting From Web of "Расширение API-интерфейса WordPress с помощью специального интерфейса"