Cosas que he aprendido al montar el blog (III) Crear plugins para wordpress

Una cosa que me gusta mucho es una web de la nasa que saca cada día una imagen nueva sobre contenido actual, de hecho tengo un script que me la pone en el login al arrancar el equipo. Y decidí hacer también un widget para wp con ella.

https://github.com/laresistenciadelbit/wp_nasapic

Realmente es el segundo plugin que hago en wordpress en mi vida, alguna vez había modificado alguno, pero nunca creado.

No es una tarea complicada, y ayuda bastante a mantener el código ordenado en wordpress.

He elegido este plugin como ejemplo porque es bastante sencillo de entender.

Vamos a dividirlo en partes para ver lo necesario en un plugin:

Cabecera

Los plugins necesitan una cabecera al principio del fichero que wordpress identificará posteriormente:

/*
* Plugin Name: nasapic
* Description: Shortcode for the last uploaded image from nasa.
* Version: 1.0
* Author: laresistenciadelbit
* Author URI: https://www.lrdb.com
*/

Donde pondremos el nombre del plugin y otros detalles.

Función con el nombre del plugin

function nasapic($atts)//variables de entrada: cuenta,repositorio,tipo,x,y
{
  $img_file='nasa.jpg';
  $noimgerror=false;
  $min_size=50;//tamaño mínimo en bytes para considerarla imagen
  if( !file_exists(plugin_dir_path( __FILE__ ).$img_file) ||  filesize(plugin_dir_path( __FILE__ ).$img_file) <=0 || date("d/m",filemtime(plugin_dir_path( __FILE__ ).$img_file)) != date("d/m") )
  {
    $ch = curl_init("https://apod.nasa.gov/apod/astropix.html");

….

También podemos meterle atributos que leeremos después como $atts[nombreDeAtributo]

Registro de la función como shortcode

add_shortcode('nasapic', 'nasapic');

Será el nombre de shortcode que le asignaremos a nuestra función

Añadir un botón al editor de posts

function nasapic_button_script() 
{
    if(wp_script_is("quicktags"))
    {
        ?>
            <script type="text/javascript">
                QTags.addButton( 
          "nasapic_shortcode",//"code_shortcode",
          "nasapic", 
                    callback
                );
                function callback()
                {
                    QTags.insertContent('[çnasapic x="300" y="300" border="radius"]');
                }
            </script>
        <?php
    }
}
add_action("admin_print_footer_scripts", "nasapic_button_script");

De esta manera en nuestro editor de posts ya nos aparecerá un botón para poder añadir el shortcode directamente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

nasa pic of the day