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.