Я хотел бы "геотегировать" все свои сообщения и отображать их на одной карте Google.
google-maps
geo-data
alekone
источник
источник
Ответы:
Можно сделать это без какого-либо плагина, вам нужен только Google Maps API .
Обратите внимание, что если вы планируете размещать 20 или более маркеров на одной странице, вы должны размещать посты, используя координаты, а не адреса.
Чтобы сохранить координаты с адреса, вы можете:
Как реализовать второй вариант, не имеет прямого отношения к вопросу, и я не буду принимать его во внимание в своем ответе, но посмотрите на этот пример API Карт, чтобы увидеть, насколько просто получить координаты из адреса.
Таким образом , я буду считать , в этом ответе , что сообщения имеют «COORDS» настраиваемое поле , где координаты хранятся в виде строки из двух разделенных запятыми значений, как коснуться:
'38.897683,-77.03649'
.Я также предполагаю, что в файле 'page-google-map.php' сохранен шаблон страницы.
Поместите следующий код в
functions.php
Как видите, в шаблоне страницы карты я ставлю в очередь
mygmap.js
находится в подпапке 'js' темытакже, зацикливая посты, я заполняю массив
$map_data
и используюwp_localize_script
этот массив для js на странице.Теперь
mygmap.js
будет содержать:Javascript не относится к WP, и я привел здесь только для того, чтобы показать использование
map_data
var. Я не разработчик JS, и код более или менее полностью взят здесьЭто все. Просто создайте шаблон страницы и вставьте div с идентификатором map, что-то вроде:
Конечно, div можно стилизовать с помощью css, и обратите внимание, что также можно стилизовать информационные окна маркеров: в css используйте
h3.marker-title
для стилизации заголовка информационного окна иdiv.marker-desc
для оформления содержимого.Обратите внимание, что центр карты рассчитывается автоматически, и если вы хотите изменить масштаб по умолчанию, вы должны поместить специальное поле «map_zoom» на странице, назначенной шаблону страницы карты.
Надеюсь, поможет.
источник
(37.983917, 23.729359899999963)
где я могу редактировать код, чтобы он мог использовать координаты с скобками вокруг них. Моя попытка просто провалилась. Спасибо за этот ответ, хотя это здорово!$meta_coords = get_post_meta( get_the_ID(), 'coords', true );
чтобы$meta_coords = trim(get_post_meta( get_the_ID(), 'coords', true ), '()');
и конечно, заменитьcoords
на фактическое поле плагин использует для координат магазина.