在wp_query wordpress中使用

时间:2016-12-01 00:50:08

标签: php wordpress

我们如何在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;

纬度和经度已经和我在一起了,所以要使用分页来计算我想要的运行距离。 建议任何建议。

1 个答案:

答案 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