Como adicionar uma seção MCQ QUIZ com paginação no Blogger e Wordpress

Publicados: 2024-03-23

Se você está procurando um roteiro de teste MCQ, você veio ao lugar certo. Neste artigo, mostrarei como você pode adicionar uma seção de teste MCQ responsiva aos seus sites Blogger e Wordpress.

Ao administrar um site de questionário, você deseja que seu questionário seja envolvente e agregue valor aos seus leitores. É por isso que projetei um bloco de teste simples usando HTML, CSS e Javascript e aqui você também obterá recursos de paginação. Assim, o usuário pode navegar entre múltiplas páginas com os botões anterior e seguinte.

Dessa forma, você pode hospedar muitas perguntas em uma única postagem do blog sem tornar a página tão longa e poderá carregar mais questionários com um clique de botão. Também implementei um recurso onde você pode exibir uma explicação detalhada da resposta assim que o usuário clicar em qualquer uma das opções.

Então, vamos verificar como você pode adicionar a seção Quiz em seus sites Blogger e Wordpress.

Etapas para adicionar seção de questionário MCQ com paginação

Para isso, você precisa utilizar o trecho de código abaixo em seu site. Se você estiver usando a plataforma Blogger CMS, edite a postagem na visualização HTML e se estiver usando Wordpress, poderá usar o bloco HTML personalizado em seu editor Gutenberg.

Recomendo que você assista primeiro ao vídeo sobre como editar o código e como adicionar mais perguntas e respostas MCQ ao seu site.

Vídeo do youtube
 <div id="quiz-container"> <div class="question-container" data-page="1"> <h2 class="question">What is the capital of France?</h2> <div class="quiz-form"> <div class="option" data-answer="true">Paris</div> <!-- Correct Answer --> <div class="option" data-answer="false">Rome</div> <div class="option" data-answer="false">Berlin</div> <div class="option" data-answer="false">Madrid</div> </div> <div class="result"></div> <div class="explanation">Paris is the capital of France.</div> </div> <div class="question-container" data-page="1"> <h2 class="question">Who wrote "Romeo and Juliet"?</h2> <div class="quiz-form"> <div class="option" data-answer="false">Charles Dickens</div> <div class="option" data-answer="true">William Shakespeare</div> <!-- Correct Answer --> <div class="option" data-answer="false">Jane Austen</div> <div class="option" data-answer="false">Mark Twain</div> </div> <div class="result"></div> <div class="explanation">William Shakespeare wrote "Romeo and Juliet".</div> </div> <div class="question-container" data-page="2"> <h2 class="question">What does the abbreviation HTML stand for?</h2> <div class="quiz-form"> <div class="option" data-answer="false">HyperText Markup Language.</div> <div class="option" data-answer="true">HighText Markup Language.</div> <!-- Correct Answer --> <div class="option" data-answer="false">HyperText Markdown Language.</div> <div class="option" data-answer="false">None of the above.</div> </div> <div class="result"></div> <div class="explanation">HTML stands for HighText Markup Language.</div> </div> <!-- Add more Questions here --> </div> <div class="pagination"> <button id="prevButton">Previous</button> <button class="pageButton" data-page="1">1</button> <button class="pageButton" data-page="2">2</button> <!-- Add more page buttons as needed --> <button id="nextButton">Next</button> </div>

Código CSS e Javascript

 <style> .question-container { width: 100%; margin: auto; text-align: left; border: 1px solid #ccc; padding: 20px; border-radius: 10px; background-color: #f9f9f9; margin-bottom: 20px; } .quiz-form { display: flex; flex-direction: column; align-items: center; } .option { margin-bottom: 10px; padding: 10px; cursor: pointer; border: 1px solid #ccc; background: #f3f3f3; width:95%; } .option:hover { background-color: #fff; } .result { font-weight: bold; margin-top: 20px; } .explanation { margin-top: 10px; display: none; } /* Pagination button styling */ .pagination { margin-top: 20px; text-align: center; } .pagination button { background-color: #007bff; color: #fff; border: none; padding: 10px 20px; margin: 0 5px; border-radius: 5px; cursor: pointer; } .pagination button:hover { background-color: #0056b3; } </style> <script> document.addEventListener('DOMContentLoaded', function() { const questionContainers = document.querySelectorAll('.question-container'); questionContainers.forEach(function(container) { const options = container.querySelectorAll('.option'); const resultDisplay = container.querySelector('.result'); const explanationDisplay = container.querySelector('.explanation'); options.forEach(function(option) { option.addEventListener('click', function() { const selectedAnswer = option.getAttribute('data-answer'); const isCorrect = selectedAnswer === "true"; options.forEach(function(opt) { opt.style.border = '1px solid #ccc'; }); option.style.border = isCorrect ? '1px solid #28a745' : '1px solid #dc3545'; option.style.background = isCorrect ? '#d8ffe1' : '#ffdbde'; resultDisplay.textContent = isCorrect ? "Correct!" : "Wrong!"; explanationDisplay.style.display = "block"; }); }); }); }); document.addEventListener('DOMContentLoaded', function() { const questionContainers = document.querySelectorAll('.question-container'); let currentPageIndex = 1; // Track the current page index function showQuestionsForPage(pageIndex) { questionContainers.forEach(function(container, index) { if (container.dataset.page === pageIndex.toString()) { container.style.display = "block"; } else { container.style.display = "none"; } }); } showQuestionsForPage(currentPageIndex); const prevButton = document.getElementById('prevButton'); const nextButton = document.getElementById('nextButton'); const pageButtons = document.querySelectorAll('.pageButton'); prevButton.addEventListener('click', function() { if (currentPageIndex > 1) { currentPageIndex--; showQuestionsForPage(currentPageIndex); } }); nextButton.addEventListener('click', function() { if (currentPageIndex < questionContainers.length - 1) { currentPageIndex++; showQuestionsForPage(currentPageIndex); } }); pageButtons.forEach(function(button) { button.addEventListener('click', function() { currentPageIndex = parseInt(button.dataset.page); showQuestionsForPage(currentPageIndex); }); }); }); </script>

Observe que se quiser usar o script em todas as páginas, você pode usar diretamente o código CSS e javascript no código do seu tema e carregá-lo em todo o site e usar apenas o código HTML na postagem do blog.

Porém, recomendo usá-lo diretamente na postagem do blog, se você estiver usando o questionário apenas em páginas limitadas.

Espero que você tenha adicionado com sucesso uma seção MCQ Quiz com paginação em seus sites Blogger e Wordpress. Se você tiver alguma dúvida, fique à vontade para perguntar na seção de comentários.

Eu também recomendo que você verifique outros blocos de questionário MCQ aqui.

  • Como iniciar um site de teste no Blogger
  • Como adicionar MCQs no site WordPress