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

如何在返回当前文章的WP_Query中添加facetwp参数?

解决方案

问题定位

你之前尝试的代码存在两个关键错误:

  1. WP_Query的正确参数名是post__in(双下划线),而非post_in
  2. post__in要求传入数组类型的文章ID,不能直接传单个数值

修正后的代码

方法1:新建WP_Query查询当前文章并添加facetwp参数

<?php
// 获取当前文章ID
$current_post_id = get_the_ID();

// 构造查询参数,注意post__in需传入数组,facetwp设为布尔值true即可
$args = array(
    'post_type'      => 'court', // 你的自定义文章类型
    'posts_per_page' => 1,
    'post__in'       => array( $current_post_id ),
    'facetwp'        => true
);

$query = new WP_Query( $args );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // 在这里添加你的ACF经纬度字段调用逻辑
        // 示例:$latitude = get_field('your_latitude_field');
        // $longitude = get_field('your_longitude_field');
    }
}
wp_reset_postdata();
?>

方法2:复用全局查询并注入facetwp参数

如果不想新建查询,可直接修改全局$wp_query的参数,让FacetWP识别当前查询:

<?php
global $wp_query;
// 给全局查询添加facetwp标记
$wp_query->set( 'facetwp', true );

// 若需要重新执行循环,可保留以下代码
if ( $wp_query->have_posts() ) {
    while ( $wp_query->have_posts() ) {
        $wp_query->the_post();
        // 你的地图相关逻辑
    }
    rewind_posts(); // 重置循环指针,不影响页面后续内容输出
}
?>

额外说明

  • FacetWP的facetwp参数接受布尔值true即可,无需传字符串'true'
  • 确保ACF经纬度字段已正确配置,且在循环内调用get_field()时能正常获取字段值
  • 若使用Oxygen Builder,建议将代码块放在单页模板的地图Facet加载前的位置执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:17:39