Ajax自定义函数在wordpress中返回0

Posted

技术标签:

【中文标题】Ajax自定义函数在wordpress中返回0【英文标题】:Ajax custom function return 0 in wordpress 【发布时间】:2021-10-17 06:40:17 【问题描述】:

这是我的 test.php 页面,我尝试使用 ajax 函数在 WordPress 中获取数据并处理自定义页面。没有错误,但它在控制台上返回 0。请帮帮我

脚本函数呼叫页面以获取数据库的值 test.php

<!DOCTYPE html>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>

                                <div>
                                    
                                    <table  style="background-color: #0066ff; color: white;">
                                        <tr >
                                            <td>
                                                <h2>Notification</h2>
                                            </td>
                                            <td >
                                                <i class="fa fa-bell" aria-hidden="true" id="demo"></i>
                                            </td>
                                        </tr>
                                    </table>

                                </div>
                           

<script>
load();
function load() 
   
    var baseurl = '<?php echo site_url();?>';   
    var ajaxurl = baseurl + '/wp-content/themes/twentyeleven/fetch.php';   
    var ajaxurl = '<?php echo admin_url("admin-ajax.php");?>';
    
    jQuery.ajax(
        url:ajaxurl,
        success:function(result) 
            console.log(result);
        
    );


</script>

fetch.php

    <?php
     
    global $wpdb;
    
    $data=$wpdb->get_results("SELECT * FROM `notification` WHERE to_id = 1154");
    foreach ($data as $value) 
        // code...
        $sender_id= $value->from_id;
        $message= $value->meassage;
        $sender_name = $value->from_name;
    
    echo json_encode($message);
    
    
    
    
     ?>

【问题讨论】:

您的代码中有错字。您设置“$message”并回显 $meassage $message 中有一个额外的“a”,我也删除了它,但它不起作用,结果相同,它返回 0 请回显一个常数值,如echo 'hello'; 以查看结果是否仍为 0。 在php代码末尾添加exit; 确保您在添加操作时使用了wp_ajax_nopriv 【参考方案1】:

在WordPress中使用add_action()注册一个ajax响应函数。

请参阅 https://codex.wordpress.org/AJAX_in_Plugins 和 https://wpmudev.com/blog/using-ajax-with-wordpress/。

【讨论】:

感谢战利品先生,它帮助了我,现在我建议最好的方法是在 wordpress 中使用飞节来使用 ajax 请求。

以上是关于Ajax自定义函数在wordpress中返回0的主要内容,如果未能解决你的问题,请参考以下文章

如何在wordpress 3.0中使用自定义分类法

用 ajax 更新而不是替换 wordpress 自定义字段

mysql自定函数

在wordpress中返回真假的Ajax函数问题

php WordPress插件,用于为WP多站点按站点存储自定义和内置用户字段。适合多语言设置。自定义为y

Wordpress实现自定义ajax请求