Плагин анкеты для wordpress на русском. YOP Poll – еще один отличный WP опросник. Устанавливаем опросы на wordpress

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

  1. Начнем с того, что организовав опрос, можно с легкостью узнать мнение пользователя о том или ином событии касаемо блога. Либо узнать отношение к какому-либо товару, если это коммерческий сайт. Это позволит узнать, что пользователям больше интересно, и какой вектор в развитии блога следует выбирать. Взять хотя бы, тот же опросник о том какую статью пользователь хотел бы увидеть на сайте следующей. Применений опросам и голосования можно найти неимоверно много.
  2. Многие пользователи ленятся оставлять комментарии, но использовать опросы и голосования они будут. А значит, это еще один способ коммуникации между пользователем и вебмастером, который в совокупности с другими методами поможет лучше понять свою аудиторию.
  3. Поведенческие факторы . Да, эти самые поведенческие факторы, о которых все сейчас говорят. И которые являются в настоящее время самым главных фактором ранжирования в поисковых системах. Именно от них по большей части будет зависеть, будет ли сайт находиться в топе результатов поиска, либо же упадет в бездонную пропасть. С помощью подобных «фишек» можно улучшать поведенческие факторы, заставляя пользователей просмотреть больше страниц, остаться подольше на сайте. Это, конечно же, далеко не единственный способ задержать человека на сайте, есть и другие: видео в статье, вращающееся поле тегов, у кого-то даже встречал мини-игру в статье.

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

WP-Polls – WordPress плагин для создания голосований и опросов

WP-Polls – один из самых популярных плагинов для создания голосования в WP. Об этом говорят нам и его рейтинги, и количество его скачиваний, которое на данный момент составляет более 1.5 млн.

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

Проблема достаточно просто решается. Необходимо скачать 2 файла русской локализации и запихнуть в корневую папку плагина, которая расположена тут: сайт\wp-content\plugins\wp-polls

Сами файлы с переводом качаем отсюда:

Для локализации плагина на другие языки можно воспользоваться страничкой: https://plugins.trac.wordpress.org/browser/wp-polls/i18n/ , на которой собраны все доступные переводы.

Если вдруг какое-то слово не переведено, а такие встречаться будут, то советую использовать плагин CodeStyling Localization, о котором я уже писал в статье про перевод темы на русский .

Переходим в консоль WordPress и находим раздел плагина WP-Polls.

  1. Задаем вопрос;
  2. Задаем ответы;
  3. Устанавливаем возможность использования многовариантных ответов;
  4. Устанавливаем дату начала и окончания голосования.

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

Скриншоты настроек делать не стал, там все и так понятно.

Вставить опрос или голосование, созданное с помощью WP-Polls на сайт, можно либо в разделе виджетов, либо в разделе добавления поста/страницы. В текстовом редакторе появится новая кнопка insert poll, нажав которую необходимо будет ввести id опроса. Id – номер.

Плагин позволяет создавать на сайте опросы, с возможностью пользователям добавлять варианты ответов. Одна из главных фишек плагина - это умение работать с плагинами страничного кэширования (например WP Super Cache).

Что касается сравнения этого плагина с аналогами. Но насчет известного wp-polls все же скажу: оба плагина очень похожи, функционал во много похож, я даже удивился когда начал сравнивать. Но, по моему, этот плагин лучше, потому что удобнее, пользователи могут добавлять свои ответы, работает с кэшем. Однако в моем плагине нет такой гибкой настройки шаблона опроса, а есть 3 темы оформления и возможность изменять дописывать свои css стили. Изменив стили, можно полностью изменить внешний вид опроса.

Что умеет плагин

  • Создавать опросы.
  • Работать с плагинами страничного кэширования, не "убивая" их функциональность.
  • Пользователи могут добавлять свои ответы (Democracy) (отключается).
  • Мульти-голосование: пользователи могут выбирать несколько вариантов ответов (отключается).
  • Закрывать опрос по окончанию указанный даты.
  • Показывать случайный опрос из нескольких активных.
  • Закрывать опросы для незарегистрированных пользователей.
  • Удобное редактирование отдельного опроса: кнопка редактировать для администраторов.
  • Редактировать количество голосов.
  • Пользователь может изменить свое мнение: возможность пере-голосовать (отключается).
  • Запоминание голосовавших по: IP, Cookie, профилям в WordPress (для авторизованных пользователей). Историю можно очищать.
  • Вставлять опросы в посты: шоткод . Для этого есть кнопка в визуальном редакторе.
  • Виджет (отключается).
  • Удобное редактирование опросов: панель плагина вынесена в Панель инструментов WordPress (toolbar) (отключается).
  • Отключение.css или.js файлов. Или их встраивание прямо в HTML.
  • Выводить заметку под опросом: короткий текст пояснение к опросу и т.п.
  • Изменение внешнего вида опроса: css темы.
  • Русский интерфейс. В коде все на русском, но кому нужно, есть перевод на English.

Но как говорил Идиот (Достоевского), - «Говорить нехорошо, лучше пример»:

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

Использование

Создавать опросы и настраивать плагин можно в меню: Настройки > Опрос Democracy. Или через Панель инструментов WordPress. Меню в панели можно отключить в настройках:

Для вставки опроса на сайт используйте виджет. Если виджет не нужен и он мешает, его можно отключить в настройках.


Также опросы можно вставлять отдельно в записи (посты) для этого используйте шоткод [ democracy id=""] . Для удобной вставки шоткодов, плагин добавляет кнопку в визуальный редактор. Кнопку можно отключить в настройках:

- шоткод

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

С версии 5.5.6, в шоткод можно передавать параметры. Например можно вывести все активные опросы так:

Параметры которые можно передать в шорткод:

"before_title" => "", // for single poll title "after_title" => "", // for single poll title "active" => null, // 1 (active), 0 (not active) or null (param not set). "open" => null, // 1 (opened), 0 (closed) or null (param not set) polls. "screen" => "voted", // vote, voted "per_page" => 10, // limit. 0 or -1 - no limit "add_from_posts" => true, // add From posts: html block

Расширенное использование

Для вывода опросов и архива опросов через код, в плагине есть специальные функции-обертки:

Выводит на экран отдельный опрос по переданному id опроса. Если id не передать, то будет выведен один из активных опросов, в случайном порядке. Чтобы получить результат этой функции для обработки используйте get_democracy_poll() .

Выводит на экран архив опросов. Параметр $hide_active отвечает за показ активных опросов. Если установить его в true, все активные опросы (которые участвуют в ротации) будут удалены их вывода. Чтобы получить результат функции, а не выводить его на экран используйте get_democracy_archives() .

Код этих функций:

###### функции обертки ###### /** * Для вывода отдельного опроса * @param int $id ID опроса * @return HTML */ function democracy_poll($id = 0, $before_title = "", $after_title = ""){ echo get_democracy_poll($id, $before_title, $after_title); } function get_democracy_poll($id = 0, $before_title = "", $after_title = ""){ // die($before_title . $after_title); $poll = new DemPoll($id); $show_results = __query_poll_screen_choose($poll); return $poll->display($show_results, $before_title, $after_title); } /** * Для вывода архивов * @param bool $hide_active Не показывать активные опросы? * @return HTML */ function democracy_archives($hide_active = false, $before_title = "", $after_title = ""){ echo get_democracy_archives($hide_active, $before_title, $after_title); } function get_democracy_archives($hide_active = false, $before_title = "", $after_title = ""){ global $wpdb; $WHERE = $hide_active ? "WHERE active = 0" : ""; $ids = $wpdb->get_col("SELECT id FROM $wpdb->democracy_q $WHERE ORDER BY active DESC, id DESC"); $output = "

"; foreach($ids as $poll_id){ $poll = new DemPoll($poll_id); $poll->opt["archive_page_url"] = ""; // убираем ссылку на архив $show_results = isset($_REQUEST["dem_act"]) ? __query_poll_screen_choose($poll) : true; $output .= $poll->display($show_results, $before_title, $after_title); } $output .= "
"; return $output; }

Примеры использования функций в теме

#1. Функция democracy_poll()

", "
"); ?>

Выведет опрос с ID 25 и обвернет заголовок опроса в

и

#2. Функция democracy_archives()

Выведем список всех неактивных опросов и обернем их заголовки в тег :

", ""); ?>

#3 Функция get_dem_polls()

Получает список опросов по указанным параметрам.

$args = array("wrap" => "

%s
", // html block wrap "before_title" => "", // for single poll title "after_title" => "", // for single poll title "screen" => "vote", // vote, voted "active" => null, // 1 (active), 0 (not active) or null (param not set). "open" => null, // 1 (opened), 0 (closed) or null (param not set) polls. "add_from_posts" => false, // add From posts: html block "return" => "html", // html, objects "paged" => 1, // pagination page when "limit" parameter is set "per_page" => 0, // limit. 0 - no limit); $html = get_dem_polls($args); echo $html;

#4 Использование хуков

Один из примеров расширения функционала плагина при помощи имеющихся хуков, описан в вопросе .

Удаление

Удалять плагин нужно из панели плагинов WordPress, чтобы он вместе с файлами удалил данные о себе в базе данных.

Нельзя удалять папку плагина через FTP (это относится ко всем плагинам WP)! Так как плагин создает дополнительные таблицы в Базе Данных и сохраняет настройки. Если удалить плагин просто удалив его папку из каталога плагинов, то плагин не почистит за собой.

Democracy poll и плагины кэширования (WP Super Cache)

Несколько слов о том, как Democracy работает с плагинами кэширования и почему это важно.

Democracy я использую на многих сайтах. И на них часто установлен страничных кэш (WP Super Cache). Однако после очередного обновления Democracy я понял, что опрос-то не умеет работать с кэшем.

В чем проблема? Поясню на примере: зашел посетитель на страницу сайта где выводится опрос за который он уже голосовал, ему вывело результаты опроса помеченные его голосами и такая страница сохранилась в кэш. Далее на эту же страницу заходит другой посетитель, который не голосовал и видит сохраненную в кэше страницу, где выводятся результаты голосования прежнего посетителя, но ведь второй посетитель еще не голосовал. Вот и получается, что если вы используете кэширование на сайте (а в WordPress оно бывает очень нужно), то опрос попросту не работает!

Посмотрел я имеющиеся в каталоге WP плагины опросов, среди которых и популярный WP-Polls и не нашел ни одного плагина, который бы работал с кэшем!

Разумеется меня это все не устроило и я активно занялся доработкой Democracy. Чтобы он умел работать с плагинами страничного кэширования! Я думал сделать это будет проще, гораздо проще, чем оказалось на деле. Работы получилось много, много время ушло на тестирование.

С версии 4.5.6, Democracy работает с кэшем!

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

Democracy poll работает по другому принципу и не "аннулирует" работу плагина кэширования.

Логика работы Democracy с кэшем такая: Проверяется установлен ли один из плагинов кэширования и включен ли в нем страничный кэш, если кэш активен, то под каждый опрос на странице в тегах noindex подгружаются html коды голосования и результатов. Далее, при загрузке страницы, скрипт проверяет установлены ли куки голосования для пользователя:

    если - да, то скрипт берет html результатов и ставит их в опрос и вы видите результаты, независимо от того что там сохранилось в кэше,

    если - нет, то скрипт заменят опрос на вид голосования и не голосовавший пользователь может голосовать.
    Но тут нужно еще проверить: куков может не быть в браузере, но в логах, в БД могут быть данные о том, что посетитель с таким же IP или пользователь с таким же ID уже голосовал. Получается совсем без AJAX запроса не обойтись, а на сервер нагружать не хочется - кэш все-таки... Поэтому: AJAX запрос на проверку данных в БД отправляется, не при загрузке страницы, а когда посетитель наведет мышку на опрос и удержит её там больше секунды (сигнал, что он хочет голосовать) или кликнет по блоку опроса (в любое место, для тачскринов).

    • Если БД отвечает, что пользователь не голосовал, то устанавливаются куки, что такая проверка пройдена, но визуально ничего не происходит и пользователь может голосовать.

Опрос по плагину

Что добавить в плагин Опрос Democracy?

Poll Options are limited because JavaScript is disabled in your browser.

Предложения из опроса, которые уже внесены в плагин (чтобы не мешались в опросе):
- При выборе возможности выбора несколько вариантов ответа нужно добавить максимальное количество выбранных вариантов к примеру 3 варианта но можно выбрать только 2 (21 голос)
- Дату окончания опроса (71 голос)
- Множественное голосование (несколько вариантов ответов) (61 голос)
- Для голосования, пользователь должен зарегаться. Контроль вести по пользователю WP. (13 голосов)
- Возможность рандомайза опросов из НЕСКОЛЬКИХ активных (18)
- Простой способ вставки опросов. (20)
- Возможность редактировать количество голосов (16)
- Кнопку переголосовать! (9)
- Добавить возможность вручную устанавливать порядок ответов. А то сейчас только по количеству голосов и по порядку добавления. (17)
- Выбор категории пользователей, которые могут управлять опросами (Админ, модер,участник и т.д.) (19)
- Отключать вывод результатов опроса (22)
- Пагинацию в Админке (9)

    Отличный плагин! Спасибо! * 24%, 150 голосов

    Несколько вопросов в опросе * 9%, 53 голоса

    Возможность создавать группы опросов и результат по ним (набор баллов) 4%, 26 голосов

    Ничего. Не надо перегружать, функционалом! 4%, 23 голоса

    Настройка шаблонов опросов. Как в WP-Polls, чтобы сам мог указать html теги, классы 3%, 19 голосов

    Добавить статистику, чтобы можно было работать с участниками голосования. * 3%, 18 голосов

    Добавить поля: имя, e-mail. * 3%, 17 голосов

    Убрать мусор из исходного кода - все стили вынести в файл * 3%, 16 голосов

    Тест добавления ответа * 2%, 15 голосов

    Отправка результатов опроса на e-mail администратора или указать другой * 2%, 15 голосов

    В логах очень неудобное отображение результатов для меня, как проводящего опрос. Сделайте в виде графиков для отдельного опроса или в виде голосов (например, возраст 25 лет - 10 голосов), а не 10 раз в логах прописано возраст 35 лет, просто замусоривание происходит. * 2%, 14 голосов

    Добавить возможность поблагодарить за участие в опросе после голосования * 2%, 11 голосов

    Кнопки bootstrap, foundation, kube * 2%, 10 голосов

Плагин позволяет создавать на сайте опросы, с возможностью пользователям добавлять варианты ответов. Одна из главных фишек плагина - это умение работать с плагинами страничного кэширования (например WP Super Cache).

Что касается сравнения этого плагина с аналогами. Но насчет известного wp-polls все же скажу: оба плагина очень похожи, функционал во много похож, я даже удивился когда начал сравнивать. Но, по моему, этот плагин лучше, потому что удобнее, пользователи могут добавлять свои ответы, работает с кэшем. Однако в моем плагине нет такой гибкой настройки шаблона опроса, а есть 3 темы оформления и возможность изменять дописывать свои css стили. Изменив стили, можно полностью изменить внешний вид опроса.

Что умеет плагин

  • Создавать опросы.
  • Работать с плагинами страничного кэширования, не "убивая" их функциональность.
  • Пользователи могут добавлять свои ответы (Democracy) (отключается).
  • Мульти-голосование: пользователи могут выбирать несколько вариантов ответов (отключается).
  • Закрывать опрос по окончанию указанный даты.
  • Показывать случайный опрос из нескольких активных.
  • Закрывать опросы для незарегистрированных пользователей.
  • Удобное редактирование отдельного опроса: кнопка редактировать для администраторов.
  • Редактировать количество голосов.
  • Пользователь может изменить свое мнение: возможность пере-голосовать (отключается).
  • Запоминание голосовавших по: IP, Cookie, профилям в WordPress (для авторизованных пользователей). Историю можно очищать.
  • Вставлять опросы в посты: шоткод . Для этого есть кнопка в визуальном редакторе.
  • Виджет (отключается).
  • Удобное редактирование опросов: панель плагина вынесена в Панель инструментов WordPress (toolbar) (отключается).
  • Отключение.css или.js файлов. Или их встраивание прямо в HTML.
  • Выводить заметку под опросом: короткий текст пояснение к опросу и т.п.
  • Изменение внешнего вида опроса: css темы.
  • Русский интерфейс. В коде все на русском, но кому нужно, есть перевод на English.

Но как говорил Идиот (Достоевского), - «Говорить нехорошо, лучше пример»:

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

Использование

Создавать опросы и настраивать плагин можно в меню: Настройки > Опрос Democracy. Или через Панель инструментов WordPress. Меню в панели можно отключить в настройках:

Для вставки опроса на сайт используйте виджет. Если виджет не нужен и он мешает, его можно отключить в настройках.


Также опросы можно вставлять отдельно в записи (посты) для этого используйте шоткод [ democracy id=""] . Для удобной вставки шоткодов, плагин добавляет кнопку в визуальный редактор. Кнопку можно отключить в настройках:

- шоткод

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

С версии 5.5.6, в шоткод можно передавать параметры. Например можно вывести все активные опросы так:

Параметры которые можно передать в шорткод:

"before_title" => "", // for single poll title "after_title" => "", // for single poll title "active" => null, // 1 (active), 0 (not active) or null (param not set). "open" => null, // 1 (opened), 0 (closed) or null (param not set) polls. "screen" => "voted", // vote, voted "per_page" => 10, // limit. 0 or -1 - no limit "add_from_posts" => true, // add From posts: html block

Расширенное использование

Для вывода опросов и архива опросов через код, в плагине есть специальные функции-обертки:

Выводит на экран отдельный опрос по переданному id опроса. Если id не передать, то будет выведен один из активных опросов, в случайном порядке. Чтобы получить результат этой функции для обработки используйте get_democracy_poll() .

Выводит на экран архив опросов. Параметр $hide_active отвечает за показ активных опросов. Если установить его в true, все активные опросы (которые участвуют в ротации) будут удалены их вывода. Чтобы получить результат функции, а не выводить его на экран используйте get_democracy_archives() .

Код этих функций:

###### функции обертки ###### /** * Для вывода отдельного опроса * @param int $id ID опроса * @return HTML */ function democracy_poll($id = 0, $before_title = "", $after_title = ""){ echo get_democracy_poll($id, $before_title, $after_title); } function get_democracy_poll($id = 0, $before_title = "", $after_title = ""){ // die($before_title . $after_title); $poll = new DemPoll($id); $show_results = __query_poll_screen_choose($poll); return $poll->display($show_results, $before_title, $after_title); } /** * Для вывода архивов * @param bool $hide_active Не показывать активные опросы? * @return HTML */ function democracy_archives($hide_active = false, $before_title = "", $after_title = ""){ echo get_democracy_archives($hide_active, $before_title, $after_title); } function get_democracy_archives($hide_active = false, $before_title = "", $after_title = ""){ global $wpdb; $WHERE = $hide_active ? "WHERE active = 0" : ""; $ids = $wpdb->get_col("SELECT id FROM $wpdb->democracy_q $WHERE ORDER BY active DESC, id DESC"); $output = "

"; foreach($ids as $poll_id){ $poll = new DemPoll($poll_id); $poll->opt["archive_page_url"] = ""; // убираем ссылку на архив $show_results = isset($_REQUEST["dem_act"]) ? __query_poll_screen_choose($poll) : true; $output .= $poll->display($show_results, $before_title, $after_title); } $output .= "
"; return $output; }

Примеры использования функций в теме

#1. Функция democracy_poll()

", "
"); ?>

Выведет опрос с ID 25 и обвернет заголовок опроса в

и

#2. Функция democracy_archives()

Выведем список всех неактивных опросов и обернем их заголовки в тег :

", ""); ?>

#3 Функция get_dem_polls()

Получает список опросов по указанным параметрам.

$args = array("wrap" => "

%s
", // html block wrap "before_title" => "", // for single poll title "after_title" => "", // for single poll title "screen" => "vote", // vote, voted "active" => null, // 1 (active), 0 (not active) or null (param not set). "open" => null, // 1 (opened), 0 (closed) or null (param not set) polls. "add_from_posts" => false, // add From posts: html block "return" => "html", // html, objects "paged" => 1, // pagination page when "limit" parameter is set "per_page" => 0, // limit. 0 - no limit); $html = get_dem_polls($args); echo $html;

#4 Использование хуков

Один из примеров расширения функционала плагина при помощи имеющихся хуков, описан в вопросе .

Удаление

Удалять плагин нужно из панели плагинов WordPress, чтобы он вместе с файлами удалил данные о себе в базе данных.

Нельзя удалять папку плагина через FTP (это относится ко всем плагинам WP)! Так как плагин создает дополнительные таблицы в Базе Данных и сохраняет настройки. Если удалить плагин просто удалив его папку из каталога плагинов, то плагин не почистит за собой.

Democracy poll и плагины кэширования (WP Super Cache)

Несколько слов о том, как Democracy работает с плагинами кэширования и почему это важно.

Democracy я использую на многих сайтах. И на них часто установлен страничных кэш (WP Super Cache). Однако после очередного обновления Democracy я понял, что опрос-то не умеет работать с кэшем.

В чем проблема? Поясню на примере: зашел посетитель на страницу сайта где выводится опрос за который он уже голосовал, ему вывело результаты опроса помеченные его голосами и такая страница сохранилась в кэш. Далее на эту же страницу заходит другой посетитель, который не голосовал и видит сохраненную в кэше страницу, где выводятся результаты голосования прежнего посетителя, но ведь второй посетитель еще не голосовал. Вот и получается, что если вы используете кэширование на сайте (а в WordPress оно бывает очень нужно), то опрос попросту не работает!

Посмотрел я имеющиеся в каталоге WP плагины опросов, среди которых и популярный WP-Polls и не нашел ни одного плагина, который бы работал с кэшем!

Разумеется меня это все не устроило и я активно занялся доработкой Democracy. Чтобы он умел работать с плагинами страничного кэширования! Я думал сделать это будет проще, гораздо проще, чем оказалось на деле. Работы получилось много, много время ушло на тестирование.

С версии 4.5.6, Democracy работает с кэшем!

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

Democracy poll работает по другому принципу и не "аннулирует" работу плагина кэширования.

Логика работы Democracy с кэшем такая: Проверяется установлен ли один из плагинов кэширования и включен ли в нем страничный кэш, если кэш активен, то под каждый опрос на странице в тегах noindex подгружаются html коды голосования и результатов. Далее, при загрузке страницы, скрипт проверяет установлены ли куки голосования для пользователя:

    если - да, то скрипт берет html результатов и ставит их в опрос и вы видите результаты, независимо от того что там сохранилось в кэше,

    если - нет, то скрипт заменят опрос на вид голосования и не голосовавший пользователь может голосовать.
    Но тут нужно еще проверить: куков может не быть в браузере, но в логах, в БД могут быть данные о том, что посетитель с таким же IP или пользователь с таким же ID уже голосовал. Получается совсем без AJAX запроса не обойтись, а на сервер нагружать не хочется - кэш все-таки... Поэтому: AJAX запрос на проверку данных в БД отправляется, не при загрузке страницы, а когда посетитель наведет мышку на опрос и удержит её там больше секунды (сигнал, что он хочет голосовать) или кликнет по блоку опроса (в любое место, для тачскринов).

    • Если БД отвечает, что пользователь не голосовал, то устанавливаются куки, что такая проверка пройдена, но визуально ничего не происходит и пользователь может голосовать.

Опрос по плагину

Что добавить в плагин Опрос Democracy?

Poll Options are limited because JavaScript is disabled in your browser.

Предложения из опроса, которые уже внесены в плагин (чтобы не мешались в опросе):
- При выборе возможности выбора несколько вариантов ответа нужно добавить максимальное количество выбранных вариантов к примеру 3 варианта но можно выбрать только 2 (21 голос)
- Дату окончания опроса (71 голос)
- Множественное голосование (несколько вариантов ответов) (61 голос)
- Для голосования, пользователь должен зарегаться. Контроль вести по пользователю WP. (13 голосов)
- Возможность рандомайза опросов из НЕСКОЛЬКИХ активных (18)
- Простой способ вставки опросов. (20)
- Возможность редактировать количество голосов (16)
- Кнопку переголосовать! (9)
- Добавить возможность вручную устанавливать порядок ответов. А то сейчас только по количеству голосов и по порядку добавления. (17)
- Выбор категории пользователей, которые могут управлять опросами (Админ, модер,участник и т.д.) (19)
- Отключать вывод результатов опроса (22)
- Пагинацию в Админке (9)

    Отличный плагин! Спасибо! * 24%, 150 голосов

    Несколько вопросов в опросе * 9%, 53 голоса

    Возможность создавать группы опросов и результат по ним (набор баллов) 4%, 26 голосов

    Ничего. Не надо перегружать, функционалом! 4%, 23 голоса

    Настройка шаблонов опросов. Как в WP-Polls, чтобы сам мог указать html теги, классы 3%, 19 голосов

    Добавить статистику, чтобы можно было работать с участниками голосования. * 3%, 18 голосов

    Добавить поля: имя, e-mail. * 3%, 17 голосов

    Убрать мусор из исходного кода - все стили вынести в файл * 3%, 16 голосов

    Тест добавления ответа * 2%, 15 голосов

    Отправка результатов опроса на e-mail администратора или указать другой * 2%, 15 голосов

    В логах очень неудобное отображение результатов для меня, как проводящего опрос. Сделайте в виде графиков для отдельного опроса или в виде голосов (например, возраст 25 лет - 10 голосов), а не 10 раз в логах прописано возраст 35 лет, просто замусоривание происходит. * 2%, 14 голосов

    Добавить возможность поблагодарить за участие в опросе после голосования * 2%, 11 голосов

    Кнопки bootstrap, foundation, kube * 2%, 10 голосов

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

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

WP-Polls

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

Yop Poll

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

Colored Vote Polls

Весьма интересная форма голосования, имеющая вид разноцветных горизонтальных блоков. Каждому ответу присваивается определенный цвет. Общий результат формируется таким же образом. Кроме вопросов и ответов, можно выводить название и описание опроса, если в этом есть необходимость.

Rating

Плагин представляет из себя выезжающий в нижней части сайта виджет с формой голосования. К тексту ответов можно добавлять изображения, к примеру, звездочки, или использовать изначально присутствующие смайлики. Отслеживание голосов ведется через IP. Другого варианта нет.

I spent most of my free time creating, updating, maintaining and supporting these plugins, if you really love my plugins and could spare me a couple of bucks, I will really appreciate it. If not feel free to use it without any obligations.

Скриншоты

Часто задаваемые вопросы

General Usage (Without Widget)
  • Polls

    • To show specific poll, use where 2 is your poll id.
    • To show random poll, use
    • To embed a specific poll in your post, use where 2 is your poll id.
    • To embed a random poll in your post, use
    • To embed a specific poll’s result in your post, use where 2 is your poll id.
    General Usage (With Widget)
    1. Go to WP-Admin -> Appearance -> Widgets .
    2. You can add the Polls Widget by clicking on the ‘Add’ link besides it.
    3. After adding, you can configure the Polls Widget by clicking on the ‘Edit’ link besides it.
    4. Click ‘Save Changes’.
    5. Scroll down for instructions on how to create a Polls Archive.
    Как добавить архив опросов?
    1. Go to WP-Admin -> Pages -> Add New .
    2. Type any title you like in the post’s title area.
    3. If you ARE using nice permalinks, after typing the title, WordPress will generate the permalink to the page. You will see an ‘Edit’ link just beside the permalink.
    4. Click ‘Edit’ and type in pollsarchive in the text field and click ‘Save’.
    5. Type in the post’s content area.
    6. Click ‘Publish’.
    • If you ARE NOT using nice permalinks, you need to go to WP-Admin -> Polls -> Poll Options and under Poll Archive -> Polls Archive URL , you need to fill in the URL to the Polls Archive Page you created above.
    Why doesn’t my poll’s answers add up to 100%?
    • It is because of rounding issues. To make it always round up to 100%, the last poll’s answer will get the remainding percentage added to it. To enable this feature, add this to your theme’s functions.php: add_filter("wp_polls_round_percentage", "__return_true");
    How Does WP-Polls Load CSS?
    • WP-Polls will load polls-css.css from your theme’s directory if it exists.
    • If it doesn’t exists, it will just load the default polls-css.css that comes with WP-Polls.
    • This will allow you to upgrade WP-Polls without worrying about overwriting your polls styles that you have created.
    Why In Internet Explorer (IE) The poll’s Text Appear Jagged?
    • To solve this issue, Open poll-css.css
    • Find: /* background-color: #ffffff; */
    • Replace: background-color: #ffffff; (where #ffffff should be your background color for the poll.)
    How Do I Have Individual Colors For Each Poll’s Bar?
    • Courtesy Of TreedBox.com
    • Open poll-css.css
    • Add to the end of the file:
    .wp-polls-ul li:nth-child(01) .pollbar{ background:#8FA0C5} .wp-polls-ul li:nth-child(02) .pollbar{ background:#FF8} .wp-polls-ul li:nth-child(03) .pollbar{ background:#ff8a3b} .wp-polls-ul li:nth-child(04) .pollbar{ background:#a61e2a} .wp-polls-ul li:nth-child(05) .pollbar{ background:#4ebbff} .wp-polls-ul li:nth-child(06) .pollbar{ background:#fbca54} .wp-polls-ul li:nth-child(07) .pollbar{ background:#aad34f} .wp-polls-ul li:nth-child(08) .pollbar{ background:#66cc9a} .wp-polls-ul li:nth-child(09) .pollbar{ background:#98CBCB} .wp-polls-ul li:nth-child(10) .pollbar{ background:#a67c52} .wp-polls-ul li .pollbar{ transition: background 0.7s ease-in-out } .wp-polls-ul li .pollbar:hover{ background:#F00 } To Display Total Polls To Display Total Poll Answers To Display Total Poll Votes To Display Poll Votes by ID To Display Total Poll Voters To Display Poll Time by ID and date format

    Участники и разработчики

    «WP-Polls» - проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

    Участники

    Журнал изменений

    VErsion 2.75.3

    • FIXED: Broken filter for templates
    • FIXED: Divison by 0 by totalvoters
    • FIXED: Add whitelist to sortby poll answers

    Versiob 2.75.2

    • FIXED: Missing str_replace for wp_polls_template filter

    Version 2.75.1

    • FIXED: Use array() instead of as a few users are still on < PHP 5.4. Props @bearlydoug.
    • FIXED: pollq_expiry is now 0 instead of blank string. Props @hpiirainen.

    Version 2.75

    • FIXED: Standardize all filters to begin with wp_polls rather than poll
    • NEW: Added wp_polls_ipaddress and wp_polls_hostname to allow user to overwrite it.

    Version 2.74.1

    • FIXED: Don’t use PHP 5.4 Short array syntax.
    • FIXED: Division by zero
    • FIXED: Wrong database column type for pollq_expiry

    Version 2.74

    • NEW: Hashed IP and anonymize Hostname to make it GDPR compliance
    • NEW: If Do Not Log is set in Poll Options, do not log to DB
    • NEW: Support %POLL_MULTIPLE_ANSWER_PERCENTAGE%. This is total votes divided by total voters.

    Version 2.73.8

    • FIXED: Bug fixes and stricter type checking

    Version 2.73.7

    • FIXED: Unable to save input HTML tags for footer templates

    Version 2.73.6

    • FIXED: Unable to vote for multiple answers
    • FIXED: input HTML tags being removed when saving templates

    Version 2.73.5

    • FIXED: Parsed error in SERVER variable.

    Version 2.73.4

    • FIXED: sanitize_key on top of intval.

    Version 2.73.3

    • NEW: Added sort by votes casted to poll answers.
    • NEW: For polls with mutiple answers, we divided by total votes instead of total voters. Props @ljxprime.
    • FIXED: Do not display poll option is not respected when poll is closed.
    • FIXED: pollip_qid, pollip_aid, pollip_timestamp are now int(10) in pollsip table.
    • FIXED: pollq_expiry is now int(10) in pollsq table.

    Version 2.73.2

    • NEW: Bump WordPress 4.7
    • FIXED: Change cron to hourly instead of twice daily.

    Version 2.73.1

    • FIXED: Allow local IP
    • FIXED: XSS on Poll bar option. Props Netsparker Web Application Security Scanner
    • FIXED: Stricter Poll pptions check

    Version 2.73

    • NEW: Display Poll Questions at the top of the Poll Logs table
    • FIXED: Remove slashes

    Version 2.72

    • НОВОЕ: Используйте translate.wordpress.org для перевода плагина
    • FIXED: SQL Injection fixes. Props Jay Dansand
    • FIXED: Use $wpdb->insert(), $wpdb->update() and $wpdb->delete() as much as possible
    • FIXED Remove poll_archive_show option from UI

    Version 2.71

    • FIXED: Use wp_kses_post() to get filter always bad tags

    Version 2.70

    • NEW: Add wp_polls_vote_poll_success action hook
    • NEW: Add wp_polls_add_poll, wp_polls_update_poll, wp_polls_delete_poll action hooks
    • ИСПРАВЛЕНО: PHP-уведомления
    • FIXED: Removed not needed wp_print_scripts
    • FIXED: Use esc_attr() and esc_textarea() instead of htmlspecialchars(). Props Govind Singh


    Что еще почитать