You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用自定义查询通过AJAX获取ACF字段值返回null,求解决?

AJAX加载更多时无法获取ACF自定义字段值(返回null)

我在实现AJAX加载更多功能时,无法获取ACF自定义字段值,始终返回null,调试输出如下:

/var/www/html/wp-content/themes/PagStream/inc/helpers/ajax-functions.php:112:
array (size=2)
  'group_header' => null
  'flexible_post_components' => null

group_header是ACF组字段,reading_time是其下的子字段。非AJAX场景下查询这些字段完全正常,但在AJAX加载更多的回调中始终返回null。已尝试重置查询、修改查询语句,问题仍未解决,求指点。

以下是相关代码:

前端JS代码

jQuery(function ($) {

    $("#load-more").click(function (e) {
      e.preventDefault();
  
      var button = $(this),
  
        data = {
          action: "loadmore",
          query: loadmore_params.posts, 
          page: loadmore_params.current_page,
        };
  
      var textButton = button.text();
  
      $.ajax({
        url: loadmore_params.ajaxurl, 
        data: data,
        type: "POST",
        beforeSend: function (v) {
          button.text("Loading..."); 
        },
        success: function (data) {
          if (data) {
            button.text(textButton);
            $(".grid__inner").append(data);

            loadmore_params.current_page++;
            
            if (loadmore_params.current_page == loadmore_params.max_page)
              button.remove(); 

          } else {
            button.remove(); 
          }
        },
        error: function(){
          console.log('error')
        }
      });
    });
  });

本地化PHP代码

global $wp_query;

    wp_localize_script('domain_js', 'loadmore_params', array(
        'ajaxurl' => site_url() . '/wp-admin/admin-ajax.php', 
        'posts' => json_encode($wp_query->query_vars), 
        'current_page' => get_query_var('paged') ? get_query_var('paged') : 1,
        'max_page' => $wp_query->max_num_pages
    ));

AJAX处理函数代码

function loadmore_ajax_handler(){

    $args = json_decode( stripslashes( $_POST['query'] ), true );
    $args['paged'] = $_POST['page'] + 1; // we need next page to be loaded
    $args['post_status'] = 'publish';

    query_posts( $args );

    if (have_posts()) :
        // run the loop
        while (have_posts()) : the_post();

            $hero = get_field('group_header', get_the_id());

            echo '<pre>';
            var_dump($hero);
            echo '</pre>';

            if ($hero) : 
            
                echo '<pre>';
                var_dump($hero['reading_time']);
                echo '</pre>';

            ?>
<?php
            endif;
        endwhile;
    endif;
    wp_reset_query();
    die;
}
add_action('wp_ajax_loadmore', 'loadmore_ajax_handler'); 
add_action('wp_ajax_nopriv_loadmore', 'loadmore_ajax_handler'); 

内容的提问来源于stack exchange,提问作者Rodrigo Libraga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:25:21