我们如何在wordpress的WP_Query对象中使用拥有关键字。 比方说,如果我想这样: -
SELECT latitude, longitude, SQRT(
POW(69.1 * (latitude - [startlat]), 2) +
POW(69.1 * ([startlng] - longitude) * COS(latitude / 57.3), 2)) AS distance
FROM TableName HAVING distance < 25 ORDER BY distance;
纬度和经度已经和我在一起了,所以要使用分页来计算我想要的运行距离。 建议任何建议。
答案 0 :(得分:0)
最简单的方法是使用post__in
参数将post.ID
值数组传递给WP_Query
。
// get all the post_ids that match your spatial criteria
global $wpdb;
$sql = 'SELECT post_id FROM TableName WHERE...';
$post_ids = $wpdb->get_results($sql, ARRAY_N);
// fetch the post data using the $posts_ids
$query = WP_Query( array( 'post__in' => $post_ids ) );
我建议使用触发器和空间索引来使用边界框和MySQL空间扩展来执行距离查询。使用后自动保存,历史记录等,此查询很快就会对您的服务器产生负担,导致性能非常糟糕,因此无法很好地扩展。有关如何避免这种情况的一些其他详细信息,请参见this other answer I wrote。