我正在尝试根据用户点击的按钮通过$ .ajax加载不同的模板。我知道如何使用一个模板文件,但似乎无法找到一种方法来调整代码以基于点击加载不同的模板(不重复代码)。
以下是ajax调用的相关部分:
var $this = $('#my-data');
$('#button-foo').click(function() {
$.ajax({
url: myAjax.ajax_url,
data: {
action: 'my_ajax_action'
},
cache: true,
beforeSend: function(){
$this.empty();
$this.addClass('loading');
},
complete: function(){
$this.removeClass('loading');
},
success: function(data) {
$this.append(data);
},
error: function(MLHttpRequest, textStatus, errorThrown){
alert(errorThrown);
}
});
});
这是我的Wordpress功能:
function my_ajax_action() {
include(locate_template( 'part-template-foo.php' ));
die();
}
add_action('wp_ajax_nopriv_my_ajax_action', 'my_ajax_action');
add_action('wp_ajax_my_ajax_action', 'my_ajax_action');
现在我需要的是根据用户点击包含4个不同的模板(part-template-bar.php,part-template-foobar.php等)。类似的东西:
function my_ajax_action() {
if ($_REQUEST['template'] == 'foo') {
include(locate_template( 'part-foo.php' ));
die();
}
if ($_REQUEST['template'] == 'bar') {
include(locate_template( 'part-bar.php' ));
die();
}
...
}
有关如何在不重复js代码和wp函数四次的情况下做到这一点的任何提示?谢谢。