复制使用PHP和MySQL构建的查询,但现在使用WordPress

时间:2016-08-16 作者:knmsuser

我正在尝试复制我构建的php mysql脚本,但要在Wordpress中工作。我使用mySQL编写的常规PHP脚本使用以下变量可以正常工作并返回结果:

$currLat = "43.653226";
$currLong = "-79.383184";

$blank = "";
$byDistance = "25";


$params = Array($currLat,$currLong,$currLat,$blank,$byDistance);

$sql = $appDb->rawQuery(\'SELECT *, ( 6371 * acos( cos( radians(?) ) * cos( radians( bLat ) ) * cos( radians( bLong ) - radians(?) ) + sin( radians(?) ) * sin( radians( bLat ) ) ) ) AS distance FROM business  WHERE business.bLat != ? HAVING distance < ? ORDER BY distance\' , $params);
在Wordpress中创建带有参数的WP\\u查询时遇到问题?

$args = array(
           \'post_type\' => \'el2business\',
           // What else goes here to build the same query as my PHP mySQL Query Above
           // I Have a meta box called bLat in my custom post type
           // I have a meta box called bLong in my custom post type
       );
这样我就可以跑去得到结果了?

$query = new WP_Query( $args );
       if( $query->have_posts() ){

           while( $query->have_posts() ){
               $query->the_post();

               $string .= \'<li>\'  . get_the_title() . \'</li>\';
           }

       }
       wp_reset_postdata();
       return $string;

1 个回复
SO网友:Rarst

您的查询似乎超出了WP API“正常”的范围。

有两种通用方法:

将其完全保存在SQL中。如果您能够找出如何使其适应WP的模式,那么您可以使用$wpdb->get_results() 要运行任意查询,请获取所需内容,然后从中继续WP_Query 更具挑战性custom field parameters 不要像那样操作更复杂的数学/逻辑。您必须使用WP的过滤器对其动态生成的SQL进行更改

如果您熟悉一般的PHP和SQL,但对WP不太熟悉,那么对于初学者来说,只使用1可能会更快地完成任务。