Ejercicios shortcode

1.- Crear un shortcode llamado ‘cuestionario’ que nos muestre un texto de encabezado que ponga ‘Cuestionario de wwordpress’
2.- Sobre ese shortcode añadir un array de 10 preguntas sobre wordpress. Ejemplo:
$preguntas=[«¿Qué es wp?»,»Desde donde se descarga WP»,»Como se llama el contenido de wp que tiene etiquetas?»]
3.- En el shortcode elegir una pregunta al azar y crear un formulario con la pregunta, un campo para responder y un botón de enviar
4.- Recoger la respuesta y ver si es correcta comparándola con un array de respuestas, ejemplo:
$respuestas=[«CMS»,»wordpress.org»,»Entrada»]
Si la respuesta es correcta indicarlo y si no lo es, también

5.- Nivel Pro: Añadir cuatro respuestas que una sea la correcta y que el usuario la elija.

<?php
/*
Plugin Name: Cuestionario WP
Description: Un pequeño cuestionario para poner a prueba nuestros conocimientos
Version: 1.0
Author: Tu Nombre
*/

add_shortcode("cuestionario","crear_cuestionario");

function crear_cuestionario(){
    ob_start();
    $respuestas=["CMS","wordpress.org","Entrada"];
     if ( isset($_POST['fb_submit']) ) {
        
        $respuesta=sanitize_text_field($_POST['respuesta']);
        $numero=sanitize_text_field($_POST['pregunta']);
        if ($respuesta==$respuestas[$numero]){
            echo "Respuesta correcta ¡Muy bien!";
        }else{
            echo "Incorrecto, eres un looser";
        }
     }
    $preguntas=["¿Qué es wp?","Desde donde se descarga WP","Como se llama el contenido de wp que tiene etiquetas?"];
    $numero=rand(0,count($preguntas)-1);
    $pregunta=$preguntas[$numero];
     // Formulario HTML
    ?>
    <h2><?=$pregunta?></h2>
    <form method="post">
        <input type="hidden" name="pregunta" value="<?=$numero?>"/>
        <p>
            <label for="fb_titulo">Respuesta:</label><br>
            <input type="text" name="respuesta" id="respuesta" required style="width:100%;">
        </p>
       <p>
            <input type="submit" name="fb_submit" value="enviar respuesta">
        </p>
    </form>
    <?php
    return ob_get_clean();
}

Versión PRO

<?php
/*
Plugin Name: Cuestionario WP
Description: Un pequeño cuestionario para poner a prueba nuestros conocimientos
Version: 1.0
Author: Tu Nombre
*/

add_shortcode("cuestionario","crear_cuestionario");

function crear_cuestionario(){
    ob_start();
    $cuestionario=[
        ["pregunta"=>"¿Qué es wordpress?",
        "respuestas"=>["CMS","Web","La palabra de la prensa","No tengo ni idea"]],
         ["pregunta"=>"¿Desde donde se descarga WP?",
        "respuestas"=>["wordpress.org","Un sitio pirata","Mis descargas.com","Tengo miedo de descargar cosas"]],
         ["pregunta"=>"¿Cómo se llama el contenido que tiene etiquetas?",
        "respuestas"=>["Entradas","Etiquetometro","Páginas","Me llamo Ralph"]],
    ];
     if ( isset($_POST['fb_submit']) ) {
        $correcta=sanitize_text_field($_POST['correcta']);
        $respuesta=sanitize_text_field($_POST['respuesta']);
        if ($respuesta==$correcta){
            echo "Respuesta correcta ¡Muy bien!";
        }else{
            echo "Incorrecto, eres un looser";
        }
     }

    $elegida=$cuestionario[array_rand($cuestionario)];
    $correcta=$elegida['respuestas'][0];
    shuffle($elegida['respuestas']);
     // Formulario HTML
    ?>
    <h2><?=$elegida['pregunta']?></h2>
    <form method="post">
        <input type="hidden" name="correcta" value="<?=$correcta?>"/>
        <p>
            <label for="fb_titulo">Respuesta:</label><br>
            <?php  
                foreach($elegida['respuestas'] as $respuesta){
            ?>
                <label><input type="radio" name='respuesta' value='<?=$respuesta?>'>
                <?=$respuesta?></label>
            <?php
            s }
    ?> </p>
       <p>
            <input type="submit" name="fb_submit" value="enviar respuesta">
        </p>
    </form>
    <?php
    return ob_get_clean();
}

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos