我制作了一个处理ajax帖子的WordPress插件。
每当我使用ajax发布到同一页面或插件时,我只需返回一定数量的数据,而不是默认页面模板所具有的所有页眉和页脚。
每当我在ajax post后得到服务器的响应时,我需要将数据附加到某个div。那么如何在运行时使用不同的页面模板:一个是在加载插件页面时另一个是在收到服务器的响应/数据之后的另一个页面模板?
页面模板结构:
<?php
/**
Template Name: Page
*/
//get header
//get content
//get footer ?>
空白页面模板结构:
<?php
/**
Template Name: blank page
*/
//get content
?>
现在在服务器的ajax响应期间我想使用空白页面模板。我怎么做?提前谢谢。
答案 0 :(得分:1)
WordPress已经支持AJAX通话,你不需要重新发明轮子。
基本上,您将函数绑定到具有特殊前缀wp_ajax_
的操作:
add_action( 'wp_ajax_my_action', 'my_action_callback' );
add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' );
然后,WordPress已经定义了此URL,您只需使用它:
var data = {
'action': 'my_action',
'whatever': 1234
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(ajaxurl, data, function(response) {
alert('Got this from the server: ' + response);
});
使用此方法将确保您获得干净的AJAX响应,而不包含主题部分。
可以在WordPress Codex中找到详细信息:http://codex.wordpress.org/AJAX_in_Plugins#Ajax_on_the_Viewer-Facing_Side