首先,阅读一些关于WordPress Ajax API 关于角色和能力,“编辑帖子”的能力Contributor. 我建议检查“delete\\u others\\u posts”,以证明该用户至少是一名编辑。或者使用“manage\\u options”功能(具有管理员,而不是编辑器)。
此外,还有check ajax referer 该功能可帮助您防止来自网站外部的条目。了解更多信息nonces 而且
下面是codex中关于在AJAX中使用nonce的示例:
在主文件中,按如下方式设置nonce:
<script type="text/javascript">
jQuery(document).ready(function($){
var data = {
action: \'my_action\',
security: \'<?php echo $ajax_nonce; ?>\',
my_string: \'Hello World!\'
};
$.post(ajaxurl, data, function(response) {
alert("Response: " + response);
});
});
</script>
在ajax文件中,检查如下引用:
add_action( \'wp_ajax_my_action\', \'my_action_function\' );
function my_action_function() {
check_ajax_referer( \'my-special-string\', \'security\' );
echo $_POST[\'my_string\'];
die;
}