当您要从主题(前端)发送ajax请求时,需要指定ajaxurl,否则它将抛出错误“undefined ajaurl”
/**
* frontend ajax requests.
*/
wp_enqueue_script( \'frontend-ajax\', JS_DIR_URI . \'frontend-ajax.js\', array(\'jquery\'), null, true );
wp_localize_script( \'frontend-ajax\', \'frontend_ajax_object\',
array(
\'ajaxurl\' => admin_url( \'admin-ajax.php\' )
)
);
然后在前端ajax中。js您可以像这样发送ajax请求
$.ajax({
url: frontend_ajax_object.ajaxurl,
type: \'GET\',
data: {
action: \'register_action_hook\',
},
success: function( response ) {
console.log( response );
},
});
然后在你的函数中。php您可以将函数挂接到register\\u action\\u挂钩。
add_action( \'wp_ajax_register_action_hook\', \'prefix_do_something\' );
function prefix_do_something() {
if ( is_user_logged_in ) {
// do something
} else {
// do something else
}
}
您还可以使用@Howdy\\u McGee方法来本地化is\\u logged\\u in变量,使用
wp_localize_script( \'handler\', \'js_object\', $array_of_variables );
并使用js\\u对象在js中访问它。variable\\u name参考@Howdy\\u McGee答案。