首页 文章

让Ajax适用于Wordpress上的所有用户

提问于
浏览
2

一些在Wordpress中使用Ajax的插件仅在您以管理员身份登录或添加这些挂钩时才起作用:

add_action('wp_ajax_my_action', 'my_action_callback'); 
add_action('wp_ajax_nopriv_my_action', 'my_action_callback');

但我真的很难让一切为非管理员用户工作,我想知道是否有一种简单的方法(对于js / php noobs)告诉wordpress全局激活所有用户的所有ajax函数,是否已登录 .

我知道如果可能的话,这可能是一种非常愚蠢和危险的方式,但请让我知道!?!!?

1 回答

  • 1

    PHP明智的,你已经用上面的代码击中了头部 . 这是每个AJAX操作所必需的,因为每个操作当然会调用不同的函数 .

    现在,我假设您正在使用默认的Wordpress AJAX调用 -

    jQuery.post(ajax_object.ajax_url, data, function(response) {
    

    如果确实如此,对于前端调用,很可能没有设置 ajax_object.ajax_url . 要设置此项,请将以下内容添加到 functions.php 文件中 -

    <?php
    add_action('wp_head', 'plugin_set_ajax_url');
    function plugin_set_ajax_url() {
    ?>
        <script type="text/javascript">
            var ajax_object = {};
            ajax_object.ajax_url = '<?php echo admin_url('admin-ajax.php'); ?>';
        </script>
    <?php
    }
    ?>
    

相关问题