请有人告诉我我的代码出错了吗?
循环无效。
当我这样做时,整个页面都是空白的。
function filter_reports() {
global $customer_account;
$args = array(
'post_type' => 'ebooks',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'customer',
'field' => 'term_id',
'terms' => $customer_account,
),
array(
'taxonomy' => 'disease',
'field' => 'term_id',
'terms' => $_POST['options'],
)
),
);
$the_query = new WP_Query( $args );
$results = array();
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$id = get_the_ID();
array_push($results, array(
'id' => $id,
'title' => get_field('title', $id),
'chair' => get_field('e-chair', $id),
));
}
}
echo json_encode($results);
die;
}
add_action( 'wp_ajax_filter_reports', 'filter_reports' );
add_action( 'wp_ajax_nopriv_filter_reports', 'filter_reports' );
我想让我在ACF插件中创建的自定义字段在我的while循环中循环。 但是整个WHILE都没有用。
我真的希望有人可以帮助我。
答案 0 :(得分:2)
你的while循环不起作用,因为你没有迭代帖子 循环中的索引,必须在while循环中设置
the_post()
所以你的代码应该是这样的:
$the_query = new WP_Query($args);
$results = array();
while ($the_query->have_posts()) : $the_query->the_post();
$id = get_the_ID();
array_push($results, array(
'id' => $id,
'title' => get_field('title', $id),
'chair' => get_field('e-chair', $id),
));
endwhile;
wp_reset_postdata();
替代方法:
$the_query = new WP_Query($args);
$results = array();
if (!empty($the_query->posts))
{
foreach ($the_query->posts as $post)
{
$id = $post->ID;
array_push($results, array(
'id' => $id,
'title' => get_field('title', $id),
'chair' => get_field('e-chair', $id),
));
}
}
wp_reset_postdata();
希望这有帮助!