我花了两天时间寻找一种不添加插件的简单方法。
功能第一。定义api的php
//enqueue the script which will use the api
function api_callings_scripts() {
wp_enqueue_script(\'score-script\', get_template_directory_uri() . \'/js/ScoreSaving.js\', [\'jquery\'], NULL, TRUE);
// Pass nonce to JS.
wp_localize_script(\'score-script\', \'ScoreSettings\', [
\'nonce\' => wp_create_nonce(\'wp_rest\'),
]);
}
add_action( \'wp_enqueue_scripts\', \'api_callings_scripts\' );
那么您的脚本Ajax调用云就是这样的
jQuery.ajax({
type: "POST",
url: "/wp-json/score/update",
data: {"var1":"value1"},
beforeSend: function(xhr) {
xhr.setRequestHeader(\'X-WP-Nonce\', ScoreSettings.nonce);
},
success:
function( data ) {
console.log( data );
}
});
现在您可以使用
get_current_user_id()
在API代码内部。