AJAX调用包含php文件

时间:2013-09-16 13:42:38

标签: php jquery ajax wordpress

我有一个带有wordpress循环的php文件(loopHandle.php),我想在我的网页上加载div。

我使用带有字符串变量$ date(“2012-6”)的on click事件进行调用,这个变量对于我的wordpress循环非常重要,因为我将按日期对帖子进行排序。

我决定逐步采取这一步骤,到目前为止,我已经使用AJAX调用并使用变量$ date响应我的div。

这就是我看待事物的方式;在click事件上,我使用以下链接发送我想要使用的变量:

$link_url = esc_url(wp_nonce_url( admin_url('admin-ajax.php?&action=dynamic_date&my_date='.$date), "dynamic_date_nonce")); ?>

我将动作,随机数和自定义变量发送到wordpress的'ajax处理器(admin-ajax.php),然后在我的functions.php中触发一个函数。这就是我实际用我发送的变量做的事情。

现在这是我面临的问题,如何使用我发送的变量响应ajax调用,并使用我的wordpress循环回复?

我想过的一些选项:

$wp_loop = if($loop->have_posts()) { 
while($loop->have_posts()) { 
the_post();
get_template_part( 'content', get_post_format() );
} 
} wp_reset_query();
$response = new WP_Ajax_Response();
$response->add(array(
'what' => 'fulldate',
'data' => $wp_loop)); 
$response->send(); 

这更像是用棍子捅它,看看会发生什么方法。

另一种理论是在我的$date = $_GET['my_date];中使用handleLoop.php,我是否可以从不是functions.php的地方检索我的变量?然后我可以这样回复:

$loopHandle = include(handleLoop.php);
$response->add(array(
'what' => 'fulldate',
'data' => $wp_loop)); 
$response->send(); 

无论如何,我希望我已经正确地表达了我的问题,当然非常感谢帮助。

编辑:我使用以下方法捕获密钥对:

s.data = $.extend(s.data, { action: url.action, _ajax_nonce: url._wpnonce, my_date: url.my_date });

1 个答案:

答案 0 :(得分:0)

两个问题:

1)你如何发送你的数据:在jQuery请求中,一定要在data参数中包含你的日期(你似乎已经通过使用GET语法在你自己的问题中解决了这个问题)。

2)你如何回应? WP_Ajax_Respond类用于发送XML,对您来说可能有点太重要了,特别是因为您最有可能返回HTML。

相反,尝试创建一个PHP数组来存储循环的每次迭代的结果,然后json_encode你的数组并返回JSON?

http://codex.wordpress.org/AJAX_in_Plugins