Занялся тут вопросом: а какие есть средства для wordpress, чтобы сделать тест? Пользователь должен ответить на несколько вопросов и в итоге получить какой-то результат. Немного пошарив на просторах интернета нашёл два решения, плагины wbquiz и TESTME.
Начнём обзор с первого. Скачиваем плагин и устанавливаем следующим образом:
- 1) копируем файлы из папки plugins в вашу папку /wp-content/plugins,
- 2) активируем плагин в панели управления на странице плагинов,
- 3) создаём шаблон страницы, в котором не забываем использовать стандартный цикл и строчку в нём (пример можно посмотреть в архиве example\wb_quiz_template.php) и закидываем его в папку с используемой темой,
- 4) создаём страницу через админку, используем для неё наш шаблон,
- 5) добавляем произвольное поле с именем question_file, а в значение подставляем путь до файла опроса, это может быть абсолютный путь со строны сервера, например Z:\home\myblog\www\wp-content\plugins\wb_quiz_questions.php, или относительный путь от папки /wp-content/plugins, т.е. если ваш файл лежит в этой же папке, то пишем просто wb_quiz_questions.php, если же уровнем выше, то ../wb_quiz_questions.php,
- 6) собственно создаём сам опрос, используя для примера файл plugins\wb_quiz_questions.php.
Используя стандартные файлы получим такую картину: сам опрос и результат.


Отсюда сразу очевидные минусы плагина: используется только на страницах, хотя ничто не мешает поставить плагин для выполнения php скриптов в постах и вставить код в нужный пост, так же минус – необходимо самому php файл опроса, конечно в этом есть своя гибкость, но ей в полной мере могу воспользоваться лишь те, кто умеет разбираться в php коде.
Второй же плагин рассчитан на более широкую аудиторию и может похвастаться более широким функционалом. Судите сами:
- 1) умеет создавать два типа тестов: тесты, где результат зависит от суммы баллов, и тТесты, где каждому ответу присваивается цифра или буква, а результат зависит от того, каких цифр или букв посетитель больше набрал,
- 2) показывать статистику прохождения тестов (покажет самые популярные тесты, посчитает, сколько человек в день проходит тот или иной тест, а также наглядно продемонстрирует (с графиками), сколько каких ответов получили посетители для каждого теста),
- 3) позволяет выбрать, кто может проходить тесты: все или только зарегистрированные пользователи,
- 4) удобный редактор, такой же, как и в обычных постах, так что в описание вы сможете вставить не только текст, но и картинки и оформить так, как вам хочется. Жаль только что для вопросов редактор не используется, так что, если вы хотите вставить изображение или ссылку в вопрос, то придётся прописывать полностью теги в ручную (<img src=””> и <a href=””></a>).
Устанавливается он гораздо легче, просто скопируйте плагин в папку /wp-content/plugins, активируем в админке, и он готов для работы. Заполняем наш тест и вставляем код этого теста в нужную нам запись(например [TESTME 1]).



Поставив на локал и протестив, я остался доволен, но радость долго не длилась. Установил на сайт, заполнил тест, но после прохождения теста результаты не выдавались, а просто выводился белый экран, тобишь страница не работала. Сразу возникло подозрение, что конфликтует с некоторыми плагинами, после выключения некоторых из них выяснилось, что виновником оказался HeadSpace2 (данный плагин меняет title, description, keywords). Плагин ключевой, так что ищем другой путь решения – идём рыться в коде плагина TESTME.
Место вычислено, им оказался файл testme_show.php в месте:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
function Num_and_Padezh ($number, $array) { $last1 = substr($number, -1, 1); if (strlen($number) > 1) $last2 = substr($number, -2, 1); $let = array (5,6,7,8,9,0); if (in_array ($last1 ,$let) ) $line = $array[0]; elseif ($last2 AND $last2 == 1) $line = $array[0]; elseif ($last1 == 1) $line = $array[1]; else $line = $array[2]; return $line; } //Собственно, надпись $testme_array_ball = array ('баллов', 'балл','балла'); $testme_array_otvet = array ('ответов', 'ответ','ответа'); $testme_array_vopros = array ('вопросов', 'вопрос','вопроса'); $testme_your_score_notice = get_option("testme_notice_got_points"); $testme_your_score_notice = str_replace("%got%", $testme_score, $testme_your_score_notice); $testme_your_score_notice = str_replace("%total%", $testme_max_score, $testme_your_score_notice); $testme_your_score_notice = str_replace("%балл%", Num_and_Padezh($testme_score, $testme_array_ball), $testme_your_score_notice); $testme_your_score_notice = str_replace("%ответ%", Num_and_Padezh($testme_score, $testme_array_orvet), $testme_your_score_notice); $testme_your_score_notice = str_replace("%вопрос%", Num_and_Padezh($testme_score, $testme_array_vopros), $testme_your_score_notice); $testme_your_score_notice = ' |
1 |
'; |
Не хочет работать функция Num_and_Padezh (функция родительного падежа и числительного). Чтож, не смертельно нужная функция, так что можем спокойно убить её :). Меняем весь этот код на:
1 2 3 4 5 6 7 |
$testme_your_score_notice = get_option("testme_notice_got_points"); $testme_your_score_notice = str_replace("%got%", $testme_score, $testme_your_score_notice); $testme_your_score_notice = str_replace("%total%", $testme_max_score, $testme_your_score_notice); $testme_your_score_notice = str_replace("%балл%", 'балла(ов)', $testme_your_score_notice); $testme_your_score_notice = str_replace("%ответ%", 'ответа(ов)', $testme_your_score_notice); $testme_your_score_notice = str_replace("%вопрос%", 'вопроса(ов)', $testme_your_score_notice); $testme_your_score_notice = ' |
1 |
'; |
и теперь всё замечательно работает.
Кто любит похимичить попробуйте wbquiz, ну а для всех я рекомендую TESTME.
Хотела подписаться на RSS — выдает ошибку 🙁
Материалов пока совсем мало, но в будущем надеюсь на что-то интересненькое, т.к. пока сама только-только осваиваю вордпресс.
Всё подправил, просто времени не было, заработался)
Установила 2-ой плагин-все здорово работает,но вариант ответа в тесте может быть только один(( Искала в Инете не нашла-чтобы был плагин и несколько вариантов ответа.. Может вы подскажете?
Эту возможность предоставляет первый плагин, но для это необходимо разбираться в php коде, т.к. весь тест прописывается именно в php файле.
т.е. правильно ли я понимаю-получается для каждого теста нужно будет прописывать отдельную php- страницу?
Для каждого теста нужно будет писать свой php файл, а уж в страницу будет вставляться ссылка на этот файл.