我的wordpress网站上有一张谷歌地图,这张地图收集了从帖子中创建的标记。为了更好地解释一下,用户添加一个项目,然后根据位置将该项目放在地图上,然后需要总计一个总库存。每个位置应仅生成一个标记以及该标记产品的总库存。我有一些选择下拉列表,让使用过滤器通过标记,并在更改时,更新ajaxed php文件,该文件构建结果的json文件,然后地图javascript循环并显示。
我显示了所有内容,但是,我无法将标记按位置分组并显示总库存。我认为最终的解决方案是让生成json文件的php脚本为每个位置创建一个带有总计的标记,从而无需使用javascript进行过滤。这是我创建JSON文件的PHP。
<?php
//Header
include "../../../../wp-blog-header.php";
global $wpdb;
//$wpdb->show_errors();
$eq_type = $_GET['eq_type'];
$sql = " SELECT wp_posts.ID, wp_postmeta.meta_value, wp_postmeta.meta_key
FROM wp_posts
LEFT JOIN wp_postmeta
ON wp_posts.ID = wp_postmeta.post_id
WHERE wp_posts.post_type = 'equipment'
AND wp_posts.post_status = 'publish'
AND wp_postmeta.meta_key NOT LIKE '%_yoast_wpseo%'
AND wp_postmeta.meta_key NOT LIKE '%_edit%'
";
$posts = $wpdb->get_results($sql);
$arr = array();
foreach ($posts as $post):
$arr["item-".$post->ID][$post->meta_key] = $post->meta_value;
//print $post->ID.' - '.$post->meta_key." - ".$post->meta_value."<br />";
endforeach;
$fp = fopen('../json/json-equipment.json', 'w');
fwrite($fp, json_encode($arr));
fclose($fp);
?>
它会像这样生成JSON输出......
{
"item-111":
{"eq_type":"Dump Truck","eq_region":"Alberta","eq_total_inventory":"123"},
"item-112":
{"eq_type":"Dump Truck","eq_region":"British Columbia","eq_total_inventory":"234"},
"item-113":
{"eq_type":"Dump Truck","eq_region":"British Columbia","eq_total_inventory":"23"},
"item-114":
{"eq_type":"Digger","eq_region":"Manitoba","eq_total_inventory":"23"}
}
所以希望我已经足够清楚了,每个位置只需要生成一个标记,每个位置的总库存增加按类型和/或区域过滤...但是分组和总计是什么真的很难过我。询问任何信息!