1

我的 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"}
    }

所以希望我已经足够清楚了,每个位置只需要生成一个标记,每个位置的总库存加起来按类型和/或区域过滤......但是分组和总计才是真正难倒的我。询问任何信息!

4

0 回答 0