Ajax根据用户点击加载不同的wordpress内容

时间:2015-07-07 13:37:10

标签: javascript php jquery ajax wordpress

我正在尝试根据用户点击的按钮通过$ .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函数四次的情况下做到这一点的任何提示?谢谢。

0 个答案:

没有答案