AJAX BY WORPDREAD影响名为jQuery Inside模板文件

时间:2018-06-06 作者:user3810167

我有这个函数来在我的函数中执行ajax。php:

Ajax Jquery:

$("#load_more").on(\'click\', (e) => {
    $.post(\'/wp-admin/admin-ajax.php\',
    { 
       \'action\': \'my_action\',
       \'cat\':$("#load_more").data(\'cat\')
    }, 
   function(data) {
      $("#data_widget").append(data).animate({}, 5000,"linear", () => {});

    });
});
功能代码。php:

add_action( \'wp_ajax_my_action\', \'widget_data\' );
add_action( \'wp_ajax_nopriv_my_action\', \'widget_data\' );

function widget_data(){
    include get_template_directory() . \'/inc/wid/card/widget-card.php\';
    wp_die();
}
ajax工作得很好,但在我调用的文件中,我通过jquery单击调用了一些数据属性,但它不起作用。

我想说的是,模板文件中的jquery调用不起作用,但在其他文件中,它起作用。

我不知道worpdress的ajax是否会影响这一点。

有什么想法吗

1 个回复
SO网友:user141080

这将不起作用:

function widget_data(){
    include get_template_directory() . \'/inc/wid/card/widget-card.php\';
    wp_die();
}
include语句只将“widget card.php”包含在文件中,而不包含在输出流中。您必须将输出重定向到变量中,然后通过“echo”输出值。

function widget_data(){

    ob_start();

    include get_template_directory() . \'/inc/wid/card/widget-card.php\';

    $output = ob_get_clean( );

    echo $output;

    wp_die();
}
有用的输出缓冲链接:

What is output buffering? - StackOverflow

结束

相关推荐

如何强制admin-ajax.php文件通过HTTPS加载?

我最近有一个网站100%支持HTTPS。前端和后端的所有资产都通过HTTPS成功调用,除了admin ajax。php。这会导致任何依赖于文件的功能失败,包括但不限于CF7、Elementor和其他使用AJAX提交的表单等。我得到的错误,你可以在截图中看到是“混合内容:页面位于”https://toursoft.co/contact-us/\' 已通过HTTPS加载,但请求了不安全的XMLHttpRequest终结点\'http://toursoft.co/wp-admin/admin-ajax.php\