Php Wordpress Admin ajax请求在函数外部回显时返回值为0

Php Wordpress Admin ajax请求在函数外部回显时返回值为0,php,ajax,wordpress,return,Php,Ajax,Wordpress,Return,它返回的值为0。如何修复它。您已经正确注册了AJAX回调;当AJAX操作被触发时,代码将执行。该函数不应重复 回调本身有几个问题: 它返回一个变量,而不是生成输出 上面有一个return语句,所以永远不会到达第二行 更正版本: add_action('wp_ajax_ybr_client_results', 'ybr_client_results'); add_action( 'wp_ajax_nopriv_ybr_client_results', 'ybr_client_results' );

它返回的值为0。如何修复它。

您已经正确注册了AJAX回调;当AJAX操作被触发时,代码将执行。该函数不应重复

回调本身有几个问题:

它返回一个变量,而不是生成输出 上面有一个return语句,所以永远不会到达第二行 更正版本:

add_action('wp_ajax_ybr_client_results', 'ybr_client_results');
add_action( 'wp_ajax_nopriv_ybr_client_results', 'ybr_client_results' );

function ybr_client_results() {
    $client_details = $_POST[ 'client_details' ];
    return $client_details;
    die();
}
 echo ybr_client_results();
文档:

您可以尝试以下代码片段从数据库中提取数据,并使用json_encode对其进行编码,然后调用wp_die


您应该在ajax脚本调用的ajax函数之外回显ajax函数的原因是什么。我还建议您使用WordPress函数wp_die;是的,那回声毫无意义。。。查找wp_send_json_success和wp_send_json_error函数我只想传递$client_details变量值以从数据库中获取数据我只想传递$client_details变量值以从数据库中获取数据上述代码应该解决您的初始问题,或者至少解决作为其中一部分发布的代码中的所有缺陷问题一旦您在AJAX回调中获得了JS的值,您就可以随心所欲地处理它了。
function ybr_client_results() {
    /**
     * I've left this unaltered for the sake of answering the question at hand.
     *
     * Don't forget to check the value exists and sanitize it correctly.
     */
    $client_details = $_POST['client_details'];

    // This AJAX callback needs to output something, not return.
    echo $client_details;

    // As another user mentioned, there's a WP specific die function.
    wp_die();
}
add_action( 'wp_ajax_ybr_client_results', 'ybr_client_results' );
add_action( 'wp_ajax_nopriv_ybr_client_results', 'ybr_client_results' );
add_action('wp_ajax_ybr_client_results', 'ybr_client_results');
add_action( 'wp_ajax_nopriv_ybr_client_results', 'ybr_client_results' );

function ybr_client_results() {

   $client_details = $_POST[ 'client_details' ];

   $result = getPosts();

   echo json_encode($result, true);

    wp_die();
}