Soporte » WordPress Avanzado » crear un plugin que incluya codigo php

  • hola estoy desarrollando mi primer plugin y me encuentro con el siguiente problema. Es un plugin que crea un shortcode que al insertarlo en una pagina me muestra un hola mundo. Este es el codigo del plugin:

    <?php
    /**
     * Plugin Name: Hola Mundo
     * Plugin URI: https://pablomonteserin.com
     * Description: Inserta un hola mundo
     * Version: 1.0.0
     * Author: Luilli
     * Author URI: https://pablomonteserin.com
     * License: GPL2
     */
    
    $etiqueta="hola mundo";
    add_shortcode( "holamundo", function($atts, $content){
    $output = 
    '<html>
    <body>
    <?php echo $etiqueta;?>
    </body>
    </html>';
    return $output;
    });
    ?>

    y no me muestra el «hola mundo». ¿como hago para insertar la variable php ($etiqueta) en la salida ($output) del shortcode?

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Buenas,

    En la variable no puedes meter el ‘echo’. Tendrías que hacerlo así:

    $output = 
    '<html>
    <body>'.$etiqueta.'
    </body>
    </html>';

    De todas formas también tienes que pasar la variable $etiqueta dentro de la función, o definirla dentro.

    • Esta respuesta fue modificada hace 2 años, 6 meses por Loading.
    • Esta respuesta fue modificada hace 2 años, 6 meses por Loading.
    Iniciador del debate chupachota

    (@chupachota)

    vale, ahora tengo otro problema. ¿estoy metiendo bien los requires?es que no me muestra el mensaje «hola mundo» y si comento los requires si me lo muestra. ¿se pueden meter los requires dentro de la funcion add_shortcode?

    <?php
    /**
     * Plugin Name: Luilli Cl@ve
     * Plugin URI: https://pablomonteserin.com
     * Description: Inserta un banner de publicidad con el shortcode banner
     * Version: 1.0.0
     * Author: Luilli
     * Author URI: https://pablomonteserin.com
     * License: GPL2
     */
    
     
    add_shortcode( "luilliclave", function($atts, $content){
    
    require_once WP_PLUGIN_DIR.'/luilliclave/lib/SAML2/Constants.php';
    require_once WP_PLUGIN_DIR.'/luilliclave/lib/SimpleSAML/Auth/Simple.php';
    require_once WP_PLUGIN_DIR.'/luilliclave/lib/SimpleSAML/Auth/Source.php';
    require_once WP_PLUGIN_DIR.'/luilliclave/lib/SimpleSAML/Configuration.php';
    
    $authSource = SAML2\Constants::SPID;
    $assertion_url= SAML2\Constants::ASSERTION_URL;
    
    $as = new SimpleSAML_Auth_Simple($authSource);
    $as = SimpleSAML_Auth_Source::getById($authSource);
    
    $localConfig = $as->getLocalConfig();
    $idp = $as->getLocalConfig()->getString("idp", NULL);
    
    	$output = '<html> hola mundo </html>';
    	return $output;
    });
    Iniciador del debate chupachota

    (@chupachota)

    si pongo los requires fuera de la funcion add_shortcode me lanza el siguiente error al intentar activarlo: Fatal error: Cannot declare class SimpleSAML_Module, because the name is already in use in /home/u117490907/domains/coronavirusilladearousa.es/public_html/wp-content/plugins/luilliclave/lib/SimpleSAML/Module.php on line 11
    Actualizo, lo que pretendo hacer es un plugin para wordpress para implementar la autentificacion con el sistema cl@ve. He descargado los archivos php de la pagina del ministerio y he probado la aplicacion php en el navegador y funciona correctamente. Ahora estoy intentando crear un plugin para tener esta funcionalidad en wordpress. Pero debido a mis pocos conocimientos en el desarrollo de plugins voy paso a paso y de momento solo intento que me muestre un hola mundo despues de requerir los archivos necesarios para el funcionamiento de la aplicacion.

    • Esta respuesta fue modificada hace 2 años, 6 meses por chupachota.
Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • El debate ‘crear un plugin que incluya codigo php’ está cerrado a nuevas respuestas.