У товаров есть произвольное поле ACF с заданием координат для плагина Yandex Map for ACF, на странице архивов эта выводится карта со всеми существующими метками.
Есть код который отображает центр карты и ее масштаб, нужно этот код сделать зависимым от категории(ее id), то есть, чтоб при таком-то id категории отображался такой-то центр с таким-то масштабом.
По сути нужно задать условие, но я не знаю как его прописать...
// Карта Яндекс
add_theme_support( 'post-thumbnails' );
function action_function_name_6515(){
global $wpdb;
$products = $wpdb->get_results("SELECT ID FROM `ev_posts` WHERE `post_type`='product' AND `post_status`='publish'");
$result = array();
foreach($products as $product){
$result[] = $product->ID;
}
the_multiple_yandex_map($result);
}
function the_multiple_yandex_map($post_ids = array())
{
$marks = array(); // Все метки
$marks_counter = 1;
foreach ($post_ids as $post_id) {
$data = (array)json_decode(get_field('halls_mapya', $post_id, false), true); // загрузка меток из записи
if (!isset($data['marks']) || !is_array($data['marks'])) {
continue;
}
foreach ((array)$data['marks'] as $mark) {
$mark['id'] = $marks_counter;
$mark['content'].='<a href="'.get_permalink($post_id).'">'.get_the_title($post_id).'</a>';
$mark['content'].=get_the_post_thumbnail($post_id);
$marks[] = $mark;
$marks_counter++;
}
}
$map_data = (array)json_decode(get_field('halls_mapya', get_the_ID(), false), true); // загрузка параметров карты для вывода всех меток
$map_data = array(
"center_lat" => 55.755456,
"center_lng" => 37.623104,
"zoom" => 10,
"type" => "map"
); // загрузка параметров карты для вывода всех меток
$map_data['marks'] = $marks;
the_yandex_map('', false, json_encode($map_data), 450);
}