Да это возможно. Это не использует шаблон Controller, рекомендованный Wordpress, но выполняет задание, в котором задание состоит в том, чтобы преобразовать входящий json в строку в вашей пользовательской таблице (здесь называется restaurants
).
function handle_post(WP_REST_Request $request) {
global $wpdb;
$item = $request->get_json_params();
$fields = array();
$values = array();
foreach($item as $key => $val) {
array_push($fields, preg_replace("/[^A-Za-z0-9]/", '', $key));
array_push($values, $wpdb->prepare('%s', $val));
}
$fields = implode(", ", $fields);
$values = implode(", ", $values);
$query = "INSERT INTO `restaurants` ($fields) VALUES ($values)";
$list = $wpdb->get_results($query);
return $list;
}
add_action('rest_api_init', function() {
register_rest_route('restos/v1', '/post', array(
'methods' => 'POST',
'callback' => 'handle_post',
'permission_callback' => function() {
return current_user_can('edit_others_posts');
}
));
});
Что значит «пользовательский стол»? API предоставляет данные из нескольких таблиц, что вы думаете о том, что вместо этого есть «обычная» таблица? –
Мне нужна пользовательская таблица для хранения информации об учетной записи, полученной от стороннего клиента, чего хочет клиент ... но после выяснения, что API использует только таблицы по умолчанию (wp_posts и wp_users) ... так Я искал другой способ подключения API к отдельной таблице, но безрезультатно ... – HelpMeDoe