Rarst说登录和注销对他都有效,我也可以确认同样的情况,这是我丑陋的测试代码,非常简单,只是你代码的一个黑客版本(用于测试)。
function say_coucou(){
check_ajax_referer( \'hello\', \'nonce\' );
echo "Hello";
die;
}
add_action(\'wp_ajax_hello_hello\', \'say_coucou\');
add_action(\'wp_ajax_nopriv_hello_hello\', \'say_coucou\');
add_action(\'admin_print_footer_scripts\',\'blabla\',20000);
add_action(\'wp_head\',\'enj\',20000);
add_action(\'wp_footer\',\'blabla\',20000);
function enj() {
wp_enqueue_script(\'jquery\');
}
function blabla(){
?>
<script type="text/javascript">
jQuery(document).ready(function($){
$(\'a#blabla\').click(function(){
var toSend = {
action:"hello_hello",
post_id: "1",
nonce: "<?php echo esc_js( wp_create_nonce(\'hello\') ); ?>"
};
url_action = "<?php echo admin_url(\'/admin-ajax.php\'); ?>";
$.ajaxSetup({cache:true});
$.ajax({
url: url_action,
type:\'POST\',
data: toSend,
cache: false,
success:function(results) {
alert(results)
}
});
});
});
</script>
<a href="#" id="blabla">aaa</a>
<?php
}
已注销和已登录(显然未登录admin logged out,因为没有admin logged out)。
实际上,我不会在真正的代码形式中如此糟糕地使用挂钩,所以不要把我的黑客版本的代码看作是一个很好的示例,因为它不是。。(仅用于说明工作测试代码)。