让Ajax为Wordpress上的所有用户工作

Get Ajax to work for all Users on Wordpress

本文关键字:用户 工作 Ajax Wordpress      更新时间:2023-09-26

一些在Wordpress中使用Ajax的插件只有在您以管理员身份登录或添加以下挂钩时才能工作:

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

但我真的很难让非管理员用户的一切都正常工作,我想知道是否有一种简单的方法(对于js/php-nobs)可以告诉wordpress为所有用户全局激活所有ajax功能,无论是否登录。

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

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
}
?>