是否可以創建連接到同一個數據庫但具有自定義表的自定義端點?如果是的話,怎麼樣?Wordpress REST API創建使用自定義表的自定義端點
例如:
wp_TempTable(定製表)
我想......我已搜查多個論壇和網站,但沒有運氣的自定義端點訪問此..
是否可以創建連接到同一個數據庫但具有自定義表的自定義端點?如果是的話,怎麼樣?Wordpress REST API創建使用自定義表的自定義端點
例如:
wp_TempTable(定製表)
我想......我已搜查多個論壇和網站,但沒有運氣的自定義端點訪問此..
是它是可能的。這不使用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');
}
));
});
我得到403(禁止)任何想法?謝謝 – Merlin
由於不使用wpdb-> prepare,你正在爲很多錯誤創建一個巨大的安全漏洞和空間。只是試圖看看當一個值有一個單引號時會發生什麼 –
(剛剛在這個答案中解決了這個問題) –
你是什麼意思「自定義表」? API暴露了多個表中的數據,你有什麼想擁有一個「自定義」表? –
我需要自定義表來存儲來自第三方客戶端的一些帳戶信息,這是客戶想要的...但是在發現API僅使用默認表(wp_posts和wp_users)之後... so我搜索了一些其他方式,使API連接到一個單獨的表,但無濟於事...... – HelpMeDoe