get_the_id()不返回帖子的ID

时间:2018-11-08 10:39:00

标签: php ajax wordpress

我正在尝试通过AJAX动态加载块:

  • 默认情况下,页面上会加载ID为1、2、3、4和5的块。
  • 单击“加载更多”后,将显示五个新块(ID为6,7、8、9和10)。

但是,我目前甚至无法获得新块的ID在页面上回显,并且我不确定为什么?我也尝试过将var全球化。

当前方法( ajax-loaders.php ):

function ajax_handler(){

  check_ajax_referer('load_more', 'security');

  $args = json_decode(( $_POST['query'] ), true ); 

  global $postId;
  $postId = get_the_id($args);

  if( $args->have_posts() ) : 
    while( have_posts() ): the_post(); 
      echo "the ID of this post is:".$postId;
    endwhile;
  endif;
  die;
}

在控制台中,我收到一个发布错误。

如果我这样做:

回显“此帖子的ID为:”。$ postId;    var_dump($ args);

它返回此帖子的ID为:NULL

不确定发生了什么事

1 个答案:

答案 0 :(得分:0)

简单的get_the_id()在WP循环中有效,您已将其放在循环之外。尝试:

echo "the ID of this post is:" . get_the_id();

循环之外:

global $post;
postId = $post->ID;