Как правильно добавить PHP-код на страницу WordPress?

Однажды, перед пользователями CMS WordPress встаёт задача добавить на свой сайт скрипт (код) PHP, чтобы привнести или изменить функционал сайта. Сделать это можно разными способами, но мы рассмотрим сначала самый безопасный (при помощи плагина и его графического интерфейса), а затем еще пару вариантов, которые тоже можно взять на вооружение.

Плагин Code Snippets

Для начинающих пользователей я рекомендую добавлять сторонний код при помощи именно этого плагина, ну или похожих аналогов, например, WPCode

Начнём пошагово:

  1. Перейдите в раздел Плагины
Раздел меню Плагины
  1. В разделе Плагины, при помощи поискового запроса «Code Snippets» отыщите нужный нам плагин
  1. Установите нужный плагин

После установки, плагин должен появиться в разделе Плагины. Теперь его необходимо включить

  1. Активируйте плагин

После его активации в разделе меню появится его ссылка

  1. Перейдите в раздел Сниппеты
Перейдите в раздел Сниппеты

На первый взгляд рабочий экран программы может напугать начинающего пользователя, но на самом деле лишнего в нём ничего нет.

Подробно ознакомиться с плагином можно в этом видео:

Ну а мы продолжим и добавить произвольный PHP-код.

  1. Выберите Добавить Новый
Выберите Добавить Новый

Перед нами появится экран добавления нового сниппета.

  1. Дайте осмысленное название, о том что будет делать добавленный код
экран добавления нового сниппета
  1. Добавьте PHP-код.

Обратите внимание, что открывающийся тег PHP <?php уже присутствует в области и его добавлять не нужно.

Добавьте PHP-код
  1. Выберите часть сайта (приватная — панель администратора, публичная — то что видят все в интернете)

Так как мой скрипт должен удалять логотип WordPress в панели управления сайтом, я выбираю Only run in administration area

Если сомневаетесь, то оставляйте первый вариант Run snippet everywhere — это позволит скрипту выполняться по всему сайту, как по приватной его части, так и по публичной

wpcode 9 - Как правильно добавить PHP-код на страницу WordPress?

При желании можете дать подробное описание назначения этого PHP-кода и отметить специальными тегами, например, такими, которые будут говорить куда предназначен скрипт:

  1. Активируйте и сохраните ваш добавленный код
wpcode 11 - Как правильно добавить PHP-код на страницу WordPress?

Если вы всё сделали правильно и не произошло ошибки, то в разделе всех сниппетов вы непременно должны увидеть ваш добавленный скрипт. Кстати, в любой момент его можно отключить 🙂

Ошибки

Преимущество данного метода в том, что он оберегает вас от ошибок и если вы, например, забыли где то поставить кавычку (а скорее всего просто не скопировали её), то сайт «не поломается». В этом случае сниппет просто не активируется и выдаст предупреждение:

Ошибка при обработке

В данном случае мы получили сообщение о синтаксической ошибке.

Добавление через код

Этот метод не безопасный (для новичков), но делает процесс прозрачным и в сравнении с плагином, конечно же менее ресурсоёмким, так как плагины занимают больше вычислительных мощностей, чем простое добавление функций в файл.

Плагин Theme Customisations

Если заглянуть в файл functions.php известной, простой темы для интернет-магазина на WordPress — Storefront, то можно обнаружить примечание от разработчиков:

Note: Do not add any custom code here. Please use a custom plugin so that your customizations aren’t lost during updates.

https://github.com/woocommerce/theme-customisations

https://github.com/woocommerce/storefront/blob/trunk/functions.php

В этом сообщении нас призывают не добавлять код в functions.php, а воспользоваться для этого решением в виде плагина.

Плагин «Theme Customisations» можно скачать из репозитория на GitHub

Плагин "Theme Customisations"

После загрузки плагина, его необходимо установить в наш WordPress. Сделать это можно при помощи метода Загрузки

Загрузить плагин

После активации плагина, как в самом первом случае, мы не обнаружим в главном меню его раздела — его попросту нет.

custom 3 - Как правильно добавить PHP-код на страницу WordPress?

Как же тогда работать с плагином? Отвечу — напрямую редактируя код. Попасть в специальный для этих целей раздел можно в меню Инструменты:

custom 4 - Как правильно добавить PHP-код на страницу WordPress?

Увидеть этот раздел можно под учётной записью администратора. И при первом его посещении WordPress любезно вас предупредит:

custom 5 - Как правильно добавить PHP-код на страницу WordPress?

Приняв риски, в правом верхнем углу нам нужно выбрать в выпадающем списке наш плагин. После чего нам будут доступны его исходные файлы:

исходные файлы

Нас интересует директория custom.

Соответственно, в каждый из файлов мы можем добавлять свой произвольный код:

  • CSS — в style.css
  • JavaScript — в custom.js
  • PHP — functions.php

Вот, например, сниппет, который удаляет логотип WordPress при входе в панель управления. Давайте добавим его в наш файл functions.php

Вот и всё 🙂

Как удалить версию WordPress внизу в панели администратора?

Чтобы удалить вывод версии WordPress в нижней части (футер) панели управления администратора сайта, нужно задействовать специальный фильтр:

apply_filters ('update_footer', строка $content  )

К данному фильтру прикреплена функция core_update_footer() с приоритетом (очерёдностью) выполнения 10. Это означает, что нам для того чтобы изменить это значение, необходимо выполнить функцию позже, то есть задать очерёдность выше 10, например, 15

<?php
/**
 * Удаляет версию WordPress из Футера панели администратора.
 *
 * @see https://developer.wordpress.org/reference/hooks/update_footer/ Documentation WordPress.
 * @author Code==Poetry <codeispoetry@mail.ru>
 */
 
add_filter( 'update_footer', '__return_empty_string', 15 );
before 2 - Как удалить версию WordPress внизу в панели администратора?after 2 - Как удалить версию WordPress внизу в панели администратора?

Как удалить или изменить фразу Спасибо вам за творчество с WordPress?

before 1 - Как удалить или изменить фразу Спасибо вам за творчество с WordPress?

Если взглянуть в ядро WordPress на исходный код, то можно обнаружить для решения нашей задачи специально предусмотренный фильтр (48-я строка):

apply_filters( ‘admin_footer_text’, string $text )

Теперь, если нам необходимо изменить текст, то передадим его нашей анонимной функции в изменённом виде и не забудем его вернуть 🙂

<?php
/**
 * Удаляет|Изменяет фразы из Футера панели администратора WordPress.
 *
 * @see https://developer.wordpress.org/reference/hooks/admin_footer_text/ Documentation WordPress.
 * @author Code==Poetry <codeispoetry@mail.ru>
 */
 
add_filter( 'admin_footer_text', function( $text ){
    
  $text = '&copy;' . get_bloginfo( 'name' ) . ', ' . wp_date( 'Y' );
  
  return $text;
} );

// Если нужно просто удалить, то вернём пустую строку
add_filter( 'admin_footer_text', '__return_empty_string' );

В данном примере я задействовал ещё две полезные функции из ядра WordPress:

get_bloginfo()

wp_date()

Первая из которых вернёт нам название сайта, а вторая поможет получить текущий год (для динамического вывода). Получаем:

before 1 1 - Как удалить или изменить фразу Спасибо вам за творчество с WordPress?after 1 - Как удалить или изменить фразу Спасибо вам за творчество с WordPress?

В сниппете приведен пример для полного удаления надписи, для этого задействуем специальную функцию WordPress, которая вернёт пустую строку и как следствие ничего отображаться не будет.

__return_empty_string()

Как удалить логотип WordPress из админ-бара в панели управления?

before - Как удалить логотип WordPress из админ-бара в панели управления?after - Как удалить логотип WordPress из админ-бара в панели управления?

В удалении логотипа WordPress нам поможет специальный хук, который вызывается (срабатывает), как раз до отображения панели инструментов администратора (админ-бар):

do_action ( 'wp_before_admin_bar_render')

Посмотреть на ГитХаб

Наша задача изменить объект $wp_admin_bar до выполнения рендера панели инструментов. «Повешаем» на этот хук безымянную функцию и не забудем обратиться к глобальной переменной $wp_admin_bar, чтобы внести в неё корректировки.

<?php
/**
 * Удаляет логотип WordPress в админ-баре панели управления сайтом.
 *
 * @see https://developer.wordpress.org/reference/hooks/wp_before_admin_bar_render/ Documentation WordPress.
 * @author Code==Poetry <codeispoetry@mail.ru>
 */
 
add_action('wp_before_admin_bar_render', function(){
    global $wp_admin_bar;
    $wp_admin_bar->remove_menu( 'wp-logo' );
} );

Готово!

Рекомендую ознакомиться со всеми методами класса WP_Admin_Bar, наверняка вы обнаружите ещё что то полезное 🙂

Как добавить текущий год в футер страницы сайта на WordPress?

Доводилось ли вам видеть в нижней части страницы сайтов несоответствие с текущим годом?

Например, на дворе 2023 год и посещая тот или иной сайт, вы видите в его нижней части следующее:

© ИП Пупкин В.И., 2012

Согласитесь, что смотрится это немного несуразно (в плане соответствия года) и невольно заставляет задуматься, о том, что сайт давненько не обновляли 🙂

Как правильно оформлять знак авторского права?

Отмечу, что все-таки, знак авторского права носит исключительно информационный характер и его оформление не критично в РФ, хотя в некоторых странах его несоответствие реальной картине может преследоваться по закону.

(©) — знак охраны авторского права, представляет собой латинскую букву C (первая буква слова «copyright») в окружности.

Подробнее Источник №1, Источник №2

Тем не менее, существует ГОСТ Р 7.0.1-2003, по которому следует оформлять авторское право на интеллектуальный продукт. Но в реальной картине мира оформляют его совершенно в произвольном виде, как вздумается 🙂

Эффектно выглядит запись с даты основания по текущий год. Например, на сайте студии Артемия Лебедева можно увидеть следующее:

Копирайт Студии Лебедева

Ставим себе Задачу: сделать текущий год динамическим. То есть, чтобы при наступлении 2024-го запись в примере выглядела 1995-2024.

Реализация

Решить данную задачу можно по разному, но мы рассмотрим универсальный способ — при помощи шорткода. add_shortcode это функция WordPress, которая позволяет прикрепить функцию-обработчик и затем безопасно вызывать её внутри контента вашего сайта.

В данном примере мы передаём два аргумента: current_year — это название шорткода, а второй — безымянная функция-обработчик.

add_shortcode( 'current_year', function() {
	return wp_date( 'Y' );
} );

Этот код необходимо добавить на ваш сайт. Далее, этот шорткод мы можем указать в нужном нам месте и он осуществит вызов этой безымянной функции, которая вернет текущий год. Запись может выглядеть примерно так:

&copy;  «Code is Poetry», [current_year]

Или так:

&copy;  «Code is Poetry», 2011-[current_year]

Я указал в редакторе блоков Гутенберг следующим образом:

Image 00000270 - Как добавить текущий год в футер страницы сайта на WordPress?

На клиентской части сайта мы наблюдаем должный результат:

Вывод динамического года

Теперь нам не стоит переживать о текущем годе — данные будут актуальными на текущий момент времени.

Преимущество данного метода в том, что теперь мы имеем своего рода функцию-помощника (helper), которую можем использовать в любой части контента. Например, я вы зову её в следующем абзаце, в котором всегда должен будет отображаться актуальный год.

вызов шорткода

[current_year]

Как создать дочернюю тему для блочной темы в WordPress?

С выпуском WordPress версии 5.9 (в январе 2022 года) появилась совершенно новая парадигма в разработки тем — разработка блочной темы. Этот урок посвящен процессу установки и настройки базовой дочерней темы для блочных тем.

Дочерняя тема — это просто часть темы, которая зависит от родительской темы и без неё она работать не будет.

Обычно дочерние темы создают чтобы сэкономить время на разработке. Выбор делается на понравившемся шаблоне оформления и сразу создается на его основе дочерняя тема (или тема-ребёнок).

Такой подход является хорошим тоном и позволяет вам избежать в будущем массу проблем и неожиданностей, основная неожиданность из которых — правка в родительской теме файлов. Так делать не надо! Ведь, после обновления темы (обновления регулярно выходят) вы затрёте ваши правки и как следствие — потеряете их. А в случае, если вы вносите правки в тему-ребенка (дочернюю тему), то даже после обновления темы-родителя ваши правки не будут затронуты и останутся работать, выполняя свои функции.

Случай с дочерними темами: после небольшого исследования исходных файлов WordPress некоторые люди обнаруживают, где находятся файлы темы, а затем напрямую редактируют их. После следующего обновления темы они с ужасом обнаруживают, что обновление полностью стерло все их внесенные изменения. Многие владельцы сайтов, дизайнеры усвоили этот урок на собственном горьком опыте.

Как предотвратить это? Использовать блочную дочернюю тему! Дочерняя тема — это тема, которая переопределяет и добавляет элементы в другую блочную тему («Родительская» блочная тема), не затрагивая какой-либо код родительской темы. При обновлении родительской темы ваша дочерняя тема сохранит все внесенные в неё правки.

https://learn.wordpress.org/lesson-plan/create-a-basic-child-theme-for-block-themes/

Поэтому, стоит уяснить, что после выбора темы и её активации необходимо создать дочернюю тему и активировать следом.

Это правило хорошего тона при разработке.

Создание простой дочерней блочной темы

  1. Создайте пустую папку (директорию) для вашей будущей темы-ребёнка

Чтобы не запутаться, я рекомендую добавлять просто постфикс -child к названию той директории, тема которой выступает в качестве родительской.

Например, мы создаем дочернюю тему на основе twentytwentyfour, соответственно, название директории для темы-ребёнка будет twentytwentyfour-child

Такой подход позволит вам не запутаться в связях дочерних тем и родительских.

  1. Создайте в этой папке файл style.css

В файле стилей (style.css) внесите следующие необходимые данные:

/*
 Theme Name: [ИМЯ ВАШЕЙ ТЕМЫ]
 Description: Это дочерняя тема. В качестве родительской выступает тема Twenty Twenty-Four.
 Author: [ВАШЕ ИМЯ]
 Author URI: [ВАШ АДРЕС САЙТА/URL]
 Template: twentytwentyfour
 */

Важно! В строке Template обязательно укажите название папки темы-родителя, чтобы WordPress понимал из какой директории ему наследовать файлы.

директория дочерней темы

Пример моего файла:

Пример файла CSS

В панели управления мы можем наблюдать уже первые изменения:

панель управления сайтом
  1. Добавьте скриншот

Наверняка вы заметили как некрасиво и безлико выглядит квадратик с нашей темой. Чтобы это исправить, мы можем позаимствовать из родительской темы специальный файл для заполнения этого квадратика — screenshot.png

Скопируйте этот файлик из родительской темы в свою дочернюю. Если файл отсутствует — создайте его (размер 1200 на 900 пикселей).

Результат моей творческой фантазии можно увидеть ниже:

Скриншот дочерней темы

Теперь в нашей папке уже два файла: style.css и screenshot.png и раздел с доступными темами для активации тоже преобразился 🙂

Скриншот дочерней темы
  1. Создайте файл theme.json

В завершении, создайте файл с названием theme.json и скопируйте в него всё что есть в одноименном файле родительской темы.

theme.json— это файл конфигурации, который позволяет вам определять глобальные настройки, стили и многое другое для вашей темы (для визуального редактора, который называется Gutenberg).

Файл работает как с блочными, так и с классическими темами.

https://developer.wordpress.org/themes/global-settings-and-styles/introduction-to-theme-json/

Теперь вы можете смело активировать вашу дочернюю тему. После этого зайдите в редактирование страницы и обратите внимание на заготовки цветовых схем, шрифтов.

Редактор Гутенберг

Всё это тянется из файла theme.json. Попробуйте найти взаимосвязь. Откройте этот файл вашей дочерней темы и попробуйте удалить первые три, четыре блока в фигурных скобках раздела palette:

			"palette": [
				{
					"color": "#f9f9f9",
					"name": "Base",
					"slug": "base"
				},
				{
					"color": "#ffffff",
					"name": "Base / Two",
					"slug": "base-2"
				},
				{
					"color": "#111111",
					"name": "Contrast",
					"slug": "contrast"
				},
				{
					"color": "#636363",
					"name": "Contrast / Two",
					"slug": "contrast-2"
				},
Редактор кода

После сохранения вернитесь в редактор Гутенберг и исследуйте область цветовых схем для текста и фона при редактировании текста:

Вы непременно обнаружите, что число цветовых кружков уменьшилось.

Заготовки цветовых схем

Ну вот и всё!

Мы создали дочернюю тему на основе блочной темы и разобрались в минимальном количестве файлов и их назначения.

Создание при помощи плагина

Отмечу, что существует официальный плагин от разработчиков WordPress, который позволяет через визуальный интерфейс создавать свои блочные темы, как родительские, так и дочерние.

Страница плагина Create Block Theme

Как установить WordPress?

Важно понимать, что сайт на CMS WordPress состоит из двух частей:

  1. Файлы сайта на хостинге
  2. База данных

Ниже мы рассмотрим пошагово путь установки CMS WordPress с момента первого экрана — выбора языка, до действующего сайта.

Когда мы обращаемся к корню нашего сайта, там где лежат файлы WordPress мы непременно должны наблюдать первый экран, который и начинать путь установки и запуска первого сайта на WordPress:

Первый экран установки Вордпресс

Здесь нам нужно выбрать ту локаль (региональные настройки), тот язык на котором будет наш будущий сайт. В данном примере выбираем «Русский»

Выбираем язык ВордПресс

Далее мы видим примечание, о том что для соединения с базой данных (там наш WordPress будет хранить данные и контент сайта) нам необходимо знать параметры для соединения.

В самом начале я отмечал, что сайт состоит из двух частей: файлы и БД (база данных). Детали я пропускаю, подразумевая что вы обладаете уже этими данными

wp 3 - Как установить WordPress?

И на следующем шаге мы как раз то и должны их указать!

экран установки Вордпресс

После ввода параметров для соединения с Базой Данных мы переходим к следующему экрану:

экран установки Вордпресс

Это важное уведомление говорит, о том, что параметры которые вы указали для соединения верны. В противном случае вы получите сообщение об ошибке с просьбой проверить данные для соединения и указать корректные.

В случае успеха мы переходим непосредственно к установке:

Установка ВП

Здесь необходимо указать Название нашего сайта, имя пользователя на латинице, придумать этому пользователю пароль, а также указать адрес электронной почты.

Рекомендуется указывать действующий E-mail, так как может возникнуть ситуация восстановления пароля и ссылку для восстановления можно будет получить на указанный действующий адрес почты.

И вот финальный экран, который поздравляет нас об успешной установки WordPress.

Теперь наш сайт делится на две части:

  • Приватная часть (это панель управления, для редактирования материалов сайта, которая доступна по логину и паролю, которые вы придумывали ранее для своей учетной записи)
  • Публичная часть (страницы которой видят все в интернете)
wp 7 - Как установить WordPress?

Как попасть в панель управления сайтом на WordPress?

Чтобы попасть в приватную часть вашего сайта для его управления, необходимо дописать после основного адреса сайта несколько символов:

/wp-admin

Получится примерно следующее:

https://ваш-сайт.ru/wp-admin

Как поменять язык на сайте WordPress?

Прежде всего отмечу, что начиная с версии 4.0, в процессе установки WordPress предлагает сделать выбор языка с которым будет происходить дальнейшая установка .

wp 2 - Как поменять язык на сайте WordPress?

А ниже мы рассмотрим метод, которой позволяет изменить языковой перевод интерфейса сайта c английского на русский язык.

  1. Выберите в разделе меню Settings > General
  1. В выпадающем списке раздела Site Language выбрать нужный язык

Подробнее…

Google Таблицы: Как заменить пустые ячейки на «ноль»?

Решение:

  1. Выделите нужный столбец, по которому будет осуществляться поиск
Выделяем нужный столбик
  1. Выберите в верхнем меню раздел Правка > Найти и Заменить
Выбираем Найти и Заменить
  1. Далее, вставьте в поле Найти регулярное выражение
^(\s*)$
Последовательность настроек

Вот и всё! Результат выполнения можно увидеть ниже:

Результат выполнения

Послесловие:

Проблема поиска и замены в Таблицах Гугл описана в этом тикете. Вы можете подписаться на него для отслеживания. Возможно механизм замены значений null будет однажды упрощен.

Лично мне понравился метод при помощи регулярного выражения. Гугл Таблицы осуществляют поиск согласно синтаксису RE2 — познакомиться с ним можно на сайте этой библиотеки.

Давайте разберем этот пример.

^

Знак вставки: соответствует началу текстовой строки, поиск которой выполняется с использованием регулярного выражения.

^абв

позволяет найти все строки, которые начинаются с букв абв.

$

Знак доллара: соответствует окончанию текстовой строки, поиск которой выполняется с использованием регулярного выражения.

эюя$

позволяет найти все строки, которые заканчиваются буквами эюя.

И осталось нам разобраться с серединкой, которая сгруппированна круглыми скобками (хотя можно и не группировать, т.е. записать без скобок)

\s

Соответствует символам пробелов.

*

Символ говорит о том, что пробел может повторяться сколько угодно.

То есть это нужно для того, чтобы ____ три пробела — тоже считать пустотой

Как это запомнить?

Нужно руками это несколько раз набрать. При наборе начинайте последовательно: с начала и конца строк — это ^ и $, далее между ними группировка при помощи круглых скобок, получаем: ^()$ и внутри укажите символ пробела и знак «звёздочки», готово!

^(\s*)$

Хэштеги городов России

Давайте разберёмся, Что такое хештег и как им пользоваться. Не секрет, что одним из основных источников трафика являются публикации с хэштегами.

Хэштег представляет из себя фразу или слово перед которой ставится специальный символ # (решетка). Hashtag состоит из двух смысловых слов: hash — знак решётки (#) и tag — метка — ключевое слово.

В хэштегах недопустимы пробелы и если необходимо написать название города состоящее из двух и более слов, то пишется это слитно, например: 

  • #Санктпетербург
  • #cанктпетербург
  • #СанктПетербург

Назначение хэштегов — группировка тематического контента, что несомненно полезно при выборке тех или иных тем.

Мы делимся своей работой — подборкой городов Российской Федерации с хештегами и пробелами после слов. А в конце страницы сформирован список из 75 самых крупных городов РФ.

#Абаза #Абакан #Абан #Абатский #Абдулино #Абинск #Авангардное #Агаповка #Агинское #Агрыз #Адамовка #Адлер #Адреаполь #Адыгейск #АдыгеХабль #Азнакаево #Азов #Азово #Айкино #Акбулак #Акбулак #Аксай #Аксарка #Аксубаево #Актаныш #Акулово #Акша #Акъяр #Алагир #Алапаевск #Алатырь #Алдан #Алеевка #Алейск #Александров #Александров Гай #Александровка #Александровка #Александровск #Александровское #Александровское #АлександроНевский #Алексеевка #Алексеевская #Алексеевское #Алексин #Аликово #Алнаши #Алтайское #Алькеево #Альменево #Альметьевск #Амга #Амурск #Анадырь #Анапа #Ангарск #Анжеро-Судженск #Анна #Антропово #Анучино #Апастово #Апатиты #Апшеронск #Арбаж #Аргаяш #Аргун #Ардатов #Ардатов #Ардон #Арзамас #Арзгир #Аркадак #Армавир #Армизонское #Аромашево #Арсеньев #Арсеньево #Арск #Артем #Артемовский #Арти #Архангельск #Архангельское #Архангельское #Архонская #Асбест #Асекеево #Асино #Аскарово #Аскиз #Аскино #Астрахань #Аткарск #Атня #Атюрьево #Атяшево #Ахтубинск #Ачайваям #Ачинск #Ачинское #Ачит #Ачхой-Мартан #Аша #Аше #Аян #Бабаево #Бабушкино #Бабынино #Бавлы #Багаевский #Баган #Багратионово #Багратионовск #Баево #БазарныйКарабулак #БазарныйСызган #Байкалово #Байконур #Баймак #Бакалы #Баксан #Бакчар #Балабаново #Балаково #Балахна #Балахта #Балашов #Балезино #Балтай #Балтаси #Балтийск #Барабинск #Баргузин #Барда #Барнаул #Барыш #БатагайАлыта #Батайск #Батецкий #Батырево #Башмаково #Беднодемьяновск #Бежаницы #Бежецк #Безенчук #Бекенево #Беково #Белая #Белая Глина #Белая Калитва #Белая Холуница #Белгород #Белебей #Белебей #Белев #Белинский #Белкино #Белово #Белогорск #Белозерск #Белозерское #Белокуриха #Беломорск #Белорецк #Белореченск #Белоярский #Белоярский #Белый #БелыйЯр #Беляевка #Бердигестях #Бердск #Бердюжье #Береговое #Березник #Березники #Березовка #Березовка #Березовка #Березовка #Березовка #Березово #Березовский #Березовский #Беслан #Бессоновка #Бея #Бижбуляк #Бийск #Бикин #Биробиджан #Бирск #Бирюлюсы #Бичура #Благовещенка #Благовещенск #Благовещенск #Благодарный #Ближнее #Бобров #Богатово #Богатые Сабы #Богданович #Боговарово #Богородицк #Богородск #Богородское #Богородское #Боготол #Боград #Богучаны #Богучар #Боковская #Бокситогорск #Болгар #Бологое #Болотное #Болхов #Большаково #БольшаяГлушица #БольшаяМартыновка #БольшаяМурта #БольшаяПоляна #БольшаяСоснова #БольшаяЧерниговка #Большеречье #Большеустьикинское #БольшиеБерезняки #БольшиеГорки #Большие Уки #БольшоеБолдино #БольшоеИгнатово #БольшоеМурашкино #БольшоеНагаткино #Большоесело #БольшоеСело #Большое Солдатское #Большое Сорокино #Большой Камень #Большой Улуй #БольшойЦарын #Бондари #Бор #Борзя #Борисовка #Борисоглебск #Борисоглебский #Боровичи #Боровск #Борогонцы #Бородино #Борское #Борское #Братск #Бреды #Брейтово #Брюховецкая #Брянск #Брянское #Бугульма #Бугуруслан #Буденновск #Буздяк #Бузулук #Буй #Буинск #Бураево #Бурла #Бутурлино #Бутурлиновка #Быково #Быстрый Исток #Бычково #Вавож #Вагай #Вад #Вадинск #Валдай #Валуйки #Ванино #Варгаши #Вардане #Варна #Варнавино #Васильево #Васильково #Вача #Ведено #Вейделевка #Велиж #ВеликиеЛуки #ВеликийНовгород #ВеликийУстюг #Великолукское #Вельск #Венгерово #Венев #Верещагино #Вернийбисер #Верхневилюйск #Верхнеуральск #Верхнеяркеево #Верхние Киги #Верхний Ландех #ВерхнийМамон #ВерхнийУслон #Верхний Уфалей #ВерхняяПышма #ВерхняяСалда #ВерхняяТойма #Верхняя Хава #Верховажье #Верховье #Верхотурье #Верхошижемье #ВерхУсугли #ВерхЧебула #Веселый #Весново #Ветлуга #Вешенская #Вешкайма #Взморье #Визинга #Викулово #Вилюйск #Вилючинск #Вичуга #Вишневка #Вишневое #Вишневское #Вишневый #Владивосток #Владикавказ #Владимир #Владимиро-Александровское #Владимирово #Вожега #Вознесенское #Волгоград #Волгодонск #Волгореченск #Волжск #Волжский #Волово #Волово #Вологда #Володаровка #Володарский #Волоколамск #Волоконовка #Волосово #Волот #Волочаевское #Волхов #Волчиха #Вольное #Вольно-Надеждинское #Вольск #Воркута #Воробьевка #Воробьево #Воронеж #Воротынец #Воскресенск #Воскресенское #Воскресенское #Восод #Воткинск #Вохма #Всеволожск #Вуктыл #Вурнары #Выборг #Выгоничи #Выкса #Выльгорт #Выльногорск #Выселки #Высокая Гора #Высокое #Высокое #Вытегра #Вышний Волочек #Вяземский #Вязяма #Вятские Поляны #Гаврилов Посад #Гаврилово #Гаврилов-ям #Гагарин #Гагино #Гай #Галич #Гальбштадт #Гастеллово #Гатчина #Гвардейск #Гвардейское #Гдов #Геленджик #Георгиевск #Георгиевское #Георгиевское #Гиагинская #Глазов #Глазуновка #Глинка #Глушково #Глушково #Глядянское #Голицыно #Головкино #Голышманово #Гончарово #Гордеевка #Гордое #Горно-Алтайск #Горнозаводск #Горный #Горняк #Городец #Городище #Городище #Городовиковск #Гороховец #Горшечное #Горьковское #Горячий Ключ #Грайворон #Грахово #Грачевка #Грачевка #Грачевка #Гремячинск #Грибановский #Грибки #Грозный #Громово #Грязи #Грязовец #Губаха #Губкин #Губкинский #Гудермес #Гуково #Гулькевичи #Гурьевск #Гурьевск #Гусев #Гусево #Гусиноозерск #Гусь Хрустальный #Давлеканово #Далматово #Дальнегорск #Дальнее #Дальнее #Дальнее #Дальнее Константиново #Дальнереченск #Данилов #Даниловка #Данков #Даровский #Дворкино #Дебесы #Дедовичи #Демидов #Демидово #Демянск #Дербент #Дергачи #Десногорск #Дзержинск #Дзержинск #Дивеево #Дивногорск #Дивное #Дивное #Дивное #Дигора #Димитровград #Динская #Дмитриевка #Дмитриев-Льговский #Дмитров #Дмитровск-Орловский #Дно #Добринка #Доброволец #Добровольск #Доброе #Добрянка #Доваторовка #Довольное #Долгодеревенское #Долгоруково #Долгоруково #Домбаровский #Домново #Домодедово #Донецк #Донской #Дорогобуж #Дорожное #Дрожжаное #Дружба #Дубенки #Дубна #Дубна #Дубовка #Дубовское #Дубровка #Дубровка #Дудинка #Дульдурга #Думиничи #Дунаевка #Духовницкое #Духовщина #Дюртюли #Дятьково #Егорлыкская #Егорьевск #Ейск #Екатеринбург #Екатеринбург #Екатериновка #Елабуга #Елань #Елец #Елизово #Елово #Еловое #Ельники #Ельники #Ельня #Ельняки #Ельцовка #Еманжелинск #Емва #Емельяново #Енисейск #Енотаевка #Ермаково #Ермаковское #Ермекеево #Ермишь #Ермолаево #Ершичи #Ершов #Ершово #Ессентуки #Еткуль #Ефремов #Жаворонково #Железноводск #Железногорск #Железногорск #Железногорск-Илимский #Железнодорожный #Желудево #Жердевка #Жигулевск #Жиздра #Жилино #Жиратино #Жирновск #Жуковка #Жуково #Жуковский #Журавлевка #Забайкальск #Забарье #Заветное #Завитинск #Заводоуковск #Заволжье #Завьялово #Завьялово #Загородный #Загорское #Задонск #Заинск #Зайцево #Закаменск #Залари #Залегощь #Залесово #Залесье #Заливино #Заливное #Залукокоаже #Заовражное #Заозерный #Заозерск #Заозерье #Заокский #Заостровье #Западная Двина #Западный #Заповедное #Заполярный #Зарайск #Заречное #Заречный #Заречье #Заречье #Заринск #Звездный #Звенигово #Звенигород #Звеньевое #Зверево #Звериноголовское #Здвинск #Зеленогорск #Зеленоградск #Зеленодольск #Зеленое #Зеленокумск #Зеленчукская #Земетчино #Зерноград #Зея #Зилаир #Зима #Зимовники #Златоуст #Злынка #Змеиногорск #Змиевка #Знаменка #Знаменка #Знаменск #Знаменск #Знаменское #Знаменское #Знаменское #Золотухино #Зональное #Зорино #Зубова Поляна #Зубцов #Зуевка #Зырянское #Ибреси #Ивановка #Иваново #Ивантеевка #Ивдель #Ивня #Иволгинск #Иглино #Игра #Идринское #Ижевск #Ижма #Ижморский #Извилино #Измалково #Изобильное #Изобильный #Ики-Бурул #Икряное #Иланский #Илек #Иловля #Ильинский #Ильинское-Хованское #Ильинско-Подомское #Ильичевка #Ильичевка #Илюшино #Инжавино #Инза #Инсар #Инта #Йошкар-ола #Ипатово #Ирбейское #Ирбит #Иркутск #Исаклы #Исаково #Исетское #Исилькуль #Искитим #Исса #Истра #Истровка #Исянгулово #Ишеевка #Ишим #Ишимбай #Кавалерово #Кавказская #Кагальницкая #Кадом #Кадошкино #Кадуй #Кадый #Казанское #Казань #Казачинское #Казачинское #Кайбицы #Калач #Калачинск #Калач-на-дону #Калга #Калевала #Калининград #Калинино #Калининск #Калининская #Калининское #Калинково #Калиновка #Калманка #Калтасы #Калуга #Калужское #Калязин #Камбарка #Каменка #Каменка #Каменка #Каменоломни #Каменск- Шахтинский #Каменское #Каменское #Каменск-Уральский #Камень-на-Оби #Камень-Рыболов #Камешково #Камское Устье #Камызяк #Камышин #Камышлов #Канаш #Канаш #Кандалакша #Каневская #Канск #Кантемировка #Кара #Карабаш #Караблино #Карагай #Караидель #Каракулино #Карамышево #Карасук #Каратузское #Карачев #Каргаполье #Каргасок #Каргат #Каргополь #Кардымово #Кармаскалы #Карпинск #Карпогоры #Карсун #Карталы #Карымская #Касимов #Касли #Каспийский #Касторное #Касумкент #Катав-Ивановск #Катайск #Качканар #Кашары #Кашин #Каширское #Каштановка #Каштаново #Каштаново #Кваркено #Кедровый #Кез #Кемерово #Кемля #Кемь #Кетово #Кетченеры #Кижинга #Кизел #Кизильское #Кизляр #Кизнер #Киквидзе #Кикнур #Килемары #Кильмезь #Кимовск #Кимры #Кингесепп #Кинель #Кинель-Черкасы #Кинешма #Киргиз-Мияки #Киреевск #Киренск #Киржач #Кириллов #Кириши #Киров #Киров #Кирова #Кировград #Кирово-Чепецк #Кировск #Кировск #Кировский #Кирс #Кирсанов #Киселевск #Кисловодск #Кичменгский Городок #Киясово #Кленовое #Клетня #Клетский #Климовка #Климово #Клин #Клинцы #Ключи #Ключи #Клявлино #Княгинино #Ковдор #Ковернино #Ковров #Коврово #Ковылкино #Когалым #Кодинск #Кожевниково #Козельск #Козловка #Козулька #Козьмодемьянск #Койгородок #Кола #Кологрив #Коломна #Колосовка #Колосовка #Колпашево #Колпна #Колывань #Колышлей #Кольчугино #Комаричи #Комсомольск #Комсомольск #Комсомольский #Комсомольск-на-Амуре #Комсомольское #Конаково #Кондинское #Кондоль #Кондопога #Кондрово #Коноша #Константиновка #Константиновка #Константиновск #Конышевка #Копейск #Копьево #Коренево #Кореновск #Коркино #Кормиловка #Корнево #Короленково #Короча #Корткерос #Корф #Коряжма #Косиха #Костомукша #Кострово #Кострома #Костромино #Костюковка #Котельниково #Котельнич #Котлас #Котово #Котовск #Коченево #Кочки #Кочкурово #Кош-Агач #Кошехабль #Кошки #Кошхатау #Крапивинский #КраснаяГорбатка #КраснаяГорка #Красноармейск #Красноармейская #Красноармейское #Красноармейское #Красноборск #Красновишерск #Красногвардейск #Красногвардейское #Красногвардейское #Красногородское #Красногорское #Красногорское #Красногорское #Краснодар #Красное #Красное #Красное #Красное-на-Волге #Краснозерское #Краснознаменск #Красной Чикой #Краснокаменск #Краснокамск #Краснолесье #Красноолмский #Краснополье #Краснополянское #Красноселькуп #Краснослободск #Красноторовка #Краснотуранск #Краснотурьинск #Красноуральск #Красноусольский #Красноуфимск #Краснофлотское #Краснощеково #Красноярск #Красноярское #КрасныеБаки #КрасныеЧетаи #Красный #КрасныйБор #КрасныйКут #КрасныйСулин #КрасныйХолм #КрасныйЯр #Крестцы #Кривошеино #Кромы #Кромы #Кропоткин #Кругловка #Крутинка #Крутиха #Крылово #Крыловская #Крымск #Кстово #Кубановка #Кувандык #Кувшиново #Кугеси #Кудепста #Кудымкар #Куеда #Куженер #Кузнецк #Кузоватово #Куйбышев #Куйбышево #Куйбышевское #Кукмор #Кулебаки #Кулунда #Кумачово #Кумены #Кумертау #Кумылженская #Кунашак #Кунгур #Кунья #Купино #Курагино #Курах #Курган #Курганинск #Куркино #Курманаевка #Курортное #Курсавка #Курск #Куртамыш #Курумкан #Курчатов #Курья #Куса #Кушва #Кушнаренково #Кущевская #Кшенский #Кызыл #Кытманово #Кыштовка #Кыштым #Кяхта #Лабинск #Лабытнанги #Ладушкин #Лазо #Лаишево #Лангепас #Лахденпохья #Лебедянь #Лебяжье #Лебяжье #Лев Толстой #Левобережное #Левокумское #Лежнево #Ленинградская #Лениногорск #Ленинск #Ленинский #Ленинск-Кузнецкий #Ленинское #Ленск #Лермонтов #Лермонтово #Лесное #Лесное #Лесное #Лесное #Лесозаводск #Лесосибирск #ЛетняяСтавка #Лешуконское #Ливны #Лиман #Линево #Липецк #Липин Бор #Липняки #Липовка #Липово #Лиски #Лихославль #Ловозеро #ЛодейноеПоле #Локня #Локоть #Ломово #Ломоносов #Ломоносовка #Лоо #Лопатино #Лотошино #Лоухи #Луга #Луговое #Луговое #Луговое #Луговское #Лужки #Луза #Лукоянов #Лунино #Лунино #Лунино #Луховицы #Лучегорск #Лысково #Лысые Горы #Лысьва #Львовское #Льгов #Любим #Любинский #Любытино #Людиново #Лямбирь #Лянтор #Магадан #Магнитогорск #Маевка #Майкоп #Майма #Майна #Майский #Майское #Майское #Майя #Макаров #Макарьев #Максатиха #Макушино #МалаяВишера #МалаяПурга #МалаяСердоба #Малгобек #Малиники #Малиновка #Малиновка #Малмыж #Малоархангельское #Маломожайское #Малояз #Малоярославец #Малые Горки #Мальцево #Мамадыш #Мамоново #Мамонтово #Мантурово #Мантурово #Марево #Мариинск #Мариинский Посад #Маркс #Мартыновка #Маршальское #Марьино #Марьяновка #Маслянино #Матвеев Курган #Матвеевка #Матросово #Махачкала #Маяковское #Мглин #Мегион #Медвежьегорск #Медвенка #Медногорск #Медовое #Медынь #Междуреченск #Междуреченский #Междуреченский #Междуречье #Мезень #Меленки #Мелеуз #Мельниково #Мельниково #Менделеево #Менделеевск #Мензелинск #Месягутово #Мещовск #Миайлово #Миасс #Миасское #Миллерово #Милославское #Мильково #Милютинская #Минеральные Воды #Минусинск #Миньяр #Мирный #Мирный #Михайлов #Михайловка #Михайловка #Михайловка #Мичуринск #Мичуринский #Мишкино #Мишкино #Могайтуй #Можайск #Можга #Моздок #Мозырь #Мокроус #Мокроусово #Мокшан #Молчаново #Монастырщина #Мончегорск #Моргауши #Моргуново #Мордово #Мордовское #Морки #Морозовск #Моршанск #Мосальск #Москаленки #Москва #Мостовской #Мошенское #Мошково #Мраково #Муезерский #Мужи #Муравленко #Мураши #Мурманск #Муром #Муромское #Муромцево #Муслюмово #Мухоршибирь #Мучкапский #Мценск #Мыски #Мысовка #Мышкин #Набережные Челны #Навашино #Навля #Нагорное #Нагорск #Надеждино #Надым #Назарово #Назрань #Называевск #Наимово #Нальчик #Намцы #Нариманов #Наровчат #Наро-Фоминск #Нарткала #Нарышкино #Нарьян-Мар #Находка #Началово #Невель #Неверкино #Невинномысск #Невское #Невьянск #Некрасово #Некрасово #Некрасовское #Нелидово #Нема #Неман #Неманское #Нерехта #Нерчинск #Нерюнгри #Нестеров #Нефтегорск #Нефтекамск #Нефтекумск #Нефтеюганск #Нехаевский #Нея #Нива #Нивенское #Нижневартовск #Нижнедевицк #Нижнекамск #НижниеСерги #НижнийИнгаш #НижнийЛомов #НижнийНовгород #НижнийТагил #НижняяОмка #НижняяСалда #НижняяТавда #НижняяТура #Низовье #Никель #Николаевка #Николаевск #НиколаевскнаАмуре #НиколоБерезовка #Никольск #Никольск #Нилово #Новаядеревня #НоваяЛяля #НоваяМалыкла #НоваяУсмань #Новичиха #Новоалександровск #Новоалтайск #Новоаннинский #Новобелокатай #Новобирилюссы #Новобобруйск #Нововаршавка #Нововоронеж #Новогурьевское #Новодвинск #Новодугино #Новоегорьевское #Новозыбков #Новокиевский Увал #Новоколозное #Новокубанск #Новокузнецк #Новокуйбышевск #Новомичуринск #Новомосковск #Новомосковский #Новомосковское #Новониколаевский #Новонукутский #Новоорск #Новопавловск #Новопокровская #Новоржев #Новороссийск #Новоселицкое #Новоселово #Новоселово #Новосергиевка #Новосибирск #Новосокольники #Новоспасское #Новостроево #Новостроево #Новостройка #Новотроицк #Новоузенск #Новоульяновск #Новоуральск #Новохоперск #Новочеркасск #Новошахтинск #Новошешминск #НовыеБурасы #НовыйНекоуз #НовыйОскол #НовыйТоръял #НовыйУренгой #Ногинск #НожайЮрт #Нолинск #Норильск #Ноябрьск #Нурлаты #Нытва #Нюксеница #Нюрба #Нягань #Нязепетровск #Няндома #оСоловки #Обливская #Обнинск #Обоянь #Обь #Обьячево #Овражье #Одесское #Одоев #Озерки #Озерки #Озерск #Озерск #Озеры #Озинки #Оконешниково #Октябрьск #Октябрьск #Октябрьский #Октябрьский #Октябрьский #Октябрьский #Октябрьское #Октябрьское #Октябрьское #Октябрьское #Окуловка #Олекминск #Оленегорск #Оленино #Олеово #Олонец #Ольга #Ольоватка #Ольовка #Ольховатка #Ольховка #Омск #Омсукчан #Омутинский #Омутнинск #Онгудай #Онега #Оотное #Опарино #Опочка #Орда #Ордынское #Орел #Оренбург #Ореовка #ОреховоЗуево #Оричи #Орлов #Орловка #Орловский #Орск #Оршанка #Оса #Осинники #Осиновка #Оссора #Осташков #Остров #Островское #Островское #Острогожск #Острогожское #Отрадная #Отрадное #Отрадный #Оханск #Охотск #Очер #Павино #Павловка #Павлово #Павловск #Павловск #Павловская #Павловский Посад #Павлоградка #Палана #Палатка #Палех #Палкино #Палласовка #Панино #Панкрушиха #Парабель #Параньга #Партизанск #Партизанское #Партизанское #Парфеньево #Парфино #Пахачи #Пачелма #Пенза #Пено #Пеньки #Первомайск #Первомайский #Первомайский #Первомайский #Первомайское #Первомайское #Первомайское #Первоуральск #Перевоз #Переволоцкий #Перелюб #Перемышль #Переславское #Переяславка #Переяславль-Залесский #Пермь #Песочное #Пестово #Пестрецы #Пестровка #Пестяки #Песчанокопск #Петино #Петрово #Петровск #Петровское #Петрозаводск #Петропавловка #Петропавловка #ПетропавловскКамчатский #Петропавловское #Петухово #Петушки #Печора #Печоры #Пижанка #Пикалево #Пильна #Пионерский #Пировское #Пителино #Питерка #Питкяранта #Пичаево #Плавск #Пласт #Плесецк #Плешаново #Плюсса #Победино #Поваровка #Поворино #Погар #Пограничный #Пограничный #Подгоренский #Подгорное #Подгорное #Подгоровка #Поддорье #Поддубное #Поддубное #Поддубы #Поддубье #Подлипово #Подольск #Подосиновец #Подпорожье #Покровка #Покровск #Покровское #Покровское #Покровское #Покровское #Покрышкино #Полевский #Полесск #Полина Осипенко #Половинное #Полтавка #Полтавское #Полярные Зори #Полярный #Поназырево #Пономаревка #Поныри #Порецкое #Поречье #Порхов #Поспелиха #Похвистнево #Почеп #Починки #Починок #Пошехонье #Правдино #Правдинск #Преградная #Преображенская #Пречистое #Приаргунск #Прибрежное #Приволжск #Приволжье #Привольное #Пригородное #Пригородное #Придорожное #Придорожное #Приморск #ПриморскоАхтарск #Приморье #Приморье #Приозерное #Приозерное #Приозерск #Пристень #Приютное #Прокопьевск #Проладное #Пролетарск #Промышленная #Пронск #Прооровка #Прохладный #Прохоровка #Прудное #Пруды #Пряжа #Прямицыно #Псков #Пугачев #Пудож #Пустошка #Путятино #Пучеж #Пушкино #Пушкинские Горы #Пыталово #Пытьях #Пышма #Пыщуг #Пятигорск #Пятидорожное #Радищево #Радужный #Радужный #Раевский #Разино #Райчихинск #Ракитино #Ракитное #Раменское #Рамешки #Рамонь #Рассвет #Рассказово #Ребриха #Ревда #Реж #Ремонтное #Репьевка #Ржакса #Ржев #Ржевское #Ровеньки #Ровное #Ровное #Рогнедино #Родино #РодионовоНесветайская #Родники #Родники #Романовка #Романово #Романово #Романовская #Ромоданово #Рославль #Россия #Россошь #Ростов #Ростов #Рощино #Рощино #Ртищево #Рубцовск #Рудня #Рудня #Руза #Рузаевка #РусскаяПоляна #РусскийКамешкир #Ручьи #Рыбачий #Рыбинск #Рыбинск #Рыбкино #РыбнаяСлобода #Рыбное #Рыльск #Рябиновка #Ряжск #Рязань #Савино #Садовое #Садовое #Садовое #Сакмара #Салават #Салехард #Сальск #Самара #Самара #Самара #Самойловка #Сангар #Сандово #СанктПетербург #Санчурск #Сапожок #Саракташ #Саранск #Саранское #Сарапул #Саратов #Саргатское #Сарманово #Саров #Сасово #Сатинка #Сатка #Сафакулево #Сафоново #Саяногорск #Светлогорск #Светлоград #Светлый #Светлый #Светлый Яр #Свеча #Свобода #Свободный #Себеж #Северное #Северное #Северный #Северный #Северобайкальск #Северодвинск #Североморск #Североуральск #Северск #Северская #Севск #Севское #Сегежа #Седельниково #Сеймчан #СелоИмБабушкина #Селты #Семенов #Семеново #Семикаракорск #Семилуки #Сенгилей #Серафимович #Сергач #СергиевПосад #Сергиевск #Сердобск #Серебрянные Пруды #Сернур #Серов #Серпухов #Серышево #Сеченово #Сибай #Сива #Скалистый #Сковородино #Скопин #Славгород #Славинск #Славск #Славское #Славянка #Славяновка #СлавянскнаКубани #Славянское #Сладково #Сланцы #Слободской #Смоленск #Смоленское #Снежинск #Снежногрск #Собинка #Соболево #Советск #Советск #Советская Гавань #Советский #Советский #Советское #Советское #Совозное #Совозный #Сокол #Сокольники #Солдатово #Солдатово #Солигалич #Соликамск #Солнечная Долина #Солнечногорск #Солнечный #Солнцево #Соловьево #Солонешное #Солонцы #Солотча #Солтон #Соль-Илецк #Сольцы #Сонково #Сопкино #Сорочинск #Сорск #Сортавала #Сосновка #Сосновка #Сосновка #Сосновка #Сосновоборск #Сосновоборск #СосновоОзерское #Сосновское #Сосновый Бор #Сосногорск #Сочи #Спас-Деменск #Спас-Клепики #Спасск #Спасск-Дальний #Спасское #СпасскРязанский #СредниеПахачи #СредняяАхтуба #Сретенск #Ставрополь #Становое #СтараяКулатка #СтараяМайна #СтараяПолтавка #СтараяРусса #СтараяЧара #Старица #Староалейское #Стародуб #СтароеШайгово #Старожилово #Староминская #Старощербиновская #Староюрьево #СтарыйОскол #Степное #Степное #Стерлибашево #Стерлитамак #Стрежевой #Стройный #Строитель #Струги- Красные #Ступино #Суворов #Суворовка #Суворово #Суджа #Судиславль #Судогда #Суздаль #Суземка #Сузун #Суксун #Суна #Сунтар #Суоярви #Сураж #Сургут #Суровикино #Сурское #Сусанино #Сусуман #Сухиничи #Сухобузимское #Сухой Лог #Сызрань #Сыктывкар #Сысерть #Сычевка #Сюмси #Сямжа #Таборы #Табуны #Тавда #Таврическое #Таганрог #Тазовский #Тайга #Таилтып #Тайшет #Талдом #Талица #Таловая #Талпаки #Тальменка #Тамала #Тамбов #Тара #Тарасовский #Тарбагатай #Тарко-сале #Тарногский Городок #Таруса #Тасеево #Татарск #Татищево #Тахтамукай #Тацинский #Ташла #Таштагол #Таштып #Тбилисская #Тверь #Тевриз #Тегульдет #Тейково #Темкино #Темников #Темрюк #Теньгушево #Теплое #Тербуны #Терек #Тереньга #Терней #Терновка #Терскол #Тетюши #Тигиль #Тикси #Тиличики #Тим #Тимашевск #Тимирязево #Тимофеевка #Тимофеево #Тисуль #Тихвин #Тихорецк #Тишино #Тобольск #Тогул #Тогучин #Токаревка #Толбазы #Тольятти #Томск #Тонкино #Топки #Топчиха #Торбеево #Торжок #Торопец #Тосно #Тотьма #Тоцкое #Трехгорный #Троицк #Троицк #Троицкое #Троицкое #Троицкое #ТроицкоПечорск #Тросна #Тростники #Трубачевск #Туапсе #Тугаев #Тугулым #Тужа #Туймазы #Тула #Тульский #Тумановка #Тургенево #Туринск #Туринская Слобода #Турки #Турочак #Турунтаево #Тында #Тырныауз #Тюкалинск #Тюленино #Тюльган #Тюлячи #Тюменцево #Тюмень #Тюхтет #Тяжинский #Убинское #Ува #Уварово #Уват #Увельский #Углич #Угловское #Угра #Удомля #Ужур #Узловая #Узловое #Уинское #Уйское #УланУдэ #Улеты #Ульяново #Ульяново #Ульяновск #Умба #Умет #Унеча #Уни #Упорово #Уразовка #Урай #Урень #Уржум #Урмары #УрусМартан #Уруссу #Урюпинск #Усвяты #Усинск #Усмань #Усогорск #Усолье #УсольеСибирское #Успенское #Уссурийск #УстьАбакан #УстьБольшерецк #УстьДжегута #УстьДонецкий #Устье #УстьИлимск #УстьИшим #УстьКалманка #УстьКамчатск #УстьКан #УстьКатав #УстьКишерть #Усть-Кулом #Усть-Кут #Усть-Лабинск #Усть-Мая #Усть-Омчуг #Усть-Ордынский #Усть-Пристань #Усть-Тарка #УстьУда #УстьХайрюзово #УстьЦильма #Устюжна #Уфа #Ухолово #Ухта #Учалы #Учкекен #Ушаковка #Ушаково #Уяр #Фаленки #Фатеж #Февральское #Федоровка #Федотово #Ферзиково #Фершампенуаз #Филипповка #Фирово #Фокино #Фролово #Фрунзенское #Фурманов #Фурмановка #Фурманово #Хабаровск #Хабары #Хакуринохабль #Хандыга #Хантымансийск #Харабали #Харовск #Харп #Хвалынск #Хвастовичи #Хвойная #Хилок #Хиславичи #Хлебниково #Хлевное #Холм #ХолмЖирковский #Холмогоровка #Холмогоры #Холмогорье #Холмы #Хомутивка #Хоринск #Хороль #Хоста #Хохольский #Цаган Аман #Целина #Целинное #Целинное #Цивильск #Цимлянск #Чагода #Чайкино #Чайковский #Чалтырь #Чамзинка #Чаны #Чапаевск #Чаплыгин #Чарышское #Частоозерье #Частые #Чебаркуль #Чебоксары #Чегдомын #Чегем Первый #Чекмагуш #Челно-Вершины #Челябинск #Челябинск #Чеово #Чердаклы #Чердынь #Черемисиново #Черемуино #Черемхово #Черемшаны #Черепаново #Череповец #Черкесск #Черлак #Черниговка #Черноголовка #Черногорск #Чернушка #ЧерныйЯр #Чернышевск #Чернышевское #Чернышковский #Чернь #Чернянка #Черняховск #Чертково #Чесма #Чехов #Чикола #Чистоозерное #Чистополь #Чистополье #Чистыепруды #Чита #Чишмы #Чкаловск #Чоя #Чугуевка #Чудово #Чулым #Чумикан #Чунский #Чурапча #Чусовой #Чухлома #Чучково #Шадринск #Шали #Шалинское #Шаля #Шаран #Шаранга #Шаркан #Шарлык #Шарыпово #Шарья #Шатки #Шатой #Шатрово #Шатура #Шаховская #Шахты #Шахунья #Шацк #Шебалино #Шебекино #Шевченко #Шексна #Шелаболиха #Шелехов #Шелопугино #Шемурша #Шемышейка #Шенкурск #Шентала #Шербакуль #Шилка #Шилово #Шимановск #Шимск #Шипуново #Шира #Широкое #Шовгеновский #Шолоово #Шоссейный #Шуйское #Шумерля #Шумиха #Шумячи #Шушенское #Шуя #Щегловка #Щеглы #Щекино #Щелково #Щигры #Щучье #ЫтыкКюель #Электросталь #Элиста #Эльхотово #Энгельс #Эртиль #Эссо #Юдино #Южа #Южно-Сахалинск #Южноуральск #Южный #Юкаменское #Юрга #Юргамыш #Юргинское #Юрино #Юрьев- Польский #Юрьевич #Юрья #Юхнов #Яблоневка #Яблоневка #Яблоновка #Явас #Ягодное #Ядрин #Языково #Яковлевка #Якутск #Якшурбодья #Ялуторовск #Яльчики #Янаул #Янтарный #Янтиково #Яр #Яранск #Яренск #Ярки #Ярково #Яровое #Ярославль #Ярославское #Ярсале #Ярцево #Ясеньское #Ясная поляна #Ясногорск #Ясное #Ясный #Яшалта #Яшкино #Яшкуль #Яя

Подборка городов Российской Федерации

75 самых крупных городов России

#Москва #СанктПетербург #Новосибирск #Екатеринбург #НижнийНовгород #Казань #Самара #Челябинск #Омск #РостовнаДону #Уфа #Красноярск #Пермь #Волгоград #Воронеж #Саратов #Краснодар #Тольятти #Тюмень #Ижевск #Барнаул #Ульяновск #Иркутск #Владивосток #Ярославль #Хабаровск #Махачкала #Оренбург #Томск #Новокузнецк #Кемерово #Астрахань #Рязань #НабережныеЧелны #Пенза #Липецк #Тула #Киров #Чебоксары #Калининград #Курск #УланУдэ #Ставрополь #Магнитогорск #Тверь #Иваново #Брянск #Сочи #Белгород #НижнийТагил #Архангельск #Владимир #Чита #Калуга #Сургут #Смоленск #Волжский #Курган #Орёл #Череповец #Вологда #Владикавказ #Саранск #Мурманск #Якутск #Тамбов #Грозный #Стерлитамак #Кострома #Петрозаводск #Нижневартовск #ЙошкарОла #Новороссийск #КомсомольскнаАмуре #Таганрог

Как сохранять сообщения E-mail из форм плагина «Contact form 7» на сайте?

Дано: Сайт под управлением CMS WordPress. На сайте используется плагин «Contact Form 7», для создания и отправки E-mail форм.

Задача: Сохранять отправленные E-mail сообщения (обращения) внутри сайта, в базу данных, чтобы можно было получить доступ к письмам из панели управления сайтом.

Решение: Плагин «Contact Form 7» не сохраняет отправленные пользователями сообщения через формы на сайте. Но существует дополнение к этому плагину, которое исправляет эту маленькую неприятность.

Flamingo — это плагин для сохранения сообщений, созданный специально для плагина Contact Form 7.

Найти и установить его можно из панели управления сайтом, по одноимённому ключевому слову:

После активации плагина, вам будет доступен пункт Flamingo в меню административной панели WordPress.

Раздел плагина в меню

После активации плагин сразу сохраняет в базе данных вашего сайта все сообщения, отправленные через контактные формы. Теперь все они будут собраны здесь.

В Адресной книге будут E-mail пользователей, которые уже существовали в базе данных на сайте, а также которые будут поступать с новых обращений. Обратите внимание на полезный раздел История, в котором отображается источник обращения.

Адресная книга

А при помощи кнопочки Экспорт вы можете выгрузить данные пользователей в формате CSV, например, для переноса их в сервис рассылки или CRM 🙂

Возможность экспорта данных

Раздел Входящие обращения содержит непосредственно сами письма поступающие из форм созданных плагином Contact Form 7. В частности, ниже мы видим поступившее обращение:

поступившее обращение

Если перейти внутрь сообщения, то нам становится доступна обширная информация по нему. Вначале Поля, которые заполнял пользователь, а ниже дополнительная служебная информация об отправителе и отправлении, в частности мы можем узнать с какой страницы было отправлено данное сообщение, посмотреть информацию о браузере пользователя, его «Айпи»

С Flamingo вам больше не придётся беспокоиться о потере важных сообщений из-за ошибок почтового сервера или неправильной настройки отправки почты.

Официальная страница плагина на WordPress.org

Существуют и другие подобные решения, но в своей статья я ограничился этим, так как оно является простым, не нуждается в настройках и работает сразу «из коробки», а самое главное — его разработчик это автор плагина Contact Form 7, а следовательно вопрос совместимости и прочих нюансов отпадает.

Возможные неприятности

И вроде бы всё с первого взгляда хорошо… Приходят письма, данные отправителей сохраняются…

Но есть одно «но». Не стоит забывать о спаме! Как известно перед спамерами наиболее уязвимы именно формы отправки данных, такие как: комментарии, формы обратной связи.

Поэтому чтобы держать вашу базу почтовых адресатов в чистоте позаботьтесь в первую очередь о защите от спама. Возможно вам вполне хватит фильтрации сервиса Akismet, а возможно верным и надежным решением окажется  встроенная интеграция с капчей от Google плагина Contact Form 7.