在一个新的应用程序中回到这一点。我只是使用Angular解决了这个问题,类似的方法也可以用于vanilla JS。
首先,让Javascript访问admin-ajax.php
URL,类似于:
echo "<script type=\'text/javascript\'>var ajaxurl = \'".admin_url(\'admin-ajax.php\')."\'</script>";
下一步,在
functions.php
, 注册希望Ajax执行的操作:
add_action("wp_ajax_infiniteScroll", "infiniteScroll");
add_action("wp_ajax_nopriv_infiniteScroll", "infiniteScroll");
。。。并添加与上述操作的第二个参数相对应的操作处理程序:
function infiniteScroll() {
// This is what\'s returned to the client.
echo "foo";
die();
}
现在,你所有的鸭子都排成一行了。呼叫
ajaxurl
使用
action
参数设置为您在上面所做的操作,并且所有操作都应正常工作(以下示例为角度):
$http({ url: ajaxurl + "?action=infiniteScroll" })
.success(thenPopulate)
.error(thenError);
大多数解决方案“需要”JQuery(不需要),并且
wp_enqueue_scripts()
和其他一些“方便”功能(也不是必需的)。主要的事情是,让URL对JS可用,注册一个操作,然后在请求中发送该操作。
对于那些关注全球可见的ajaxurl
, 我读到的关于使用的所有其他解决方案wp_localize_script()
这就是一个全局变量。使用上述方法,您至少可以对其范围有一点控制。