<?php

// === BLOQUE 1: CABECERA DEL PLUGIN ===
// Este bloque declara todos los metadatos del plugin. WordPress lo reconoce y lo muestra en el panel de plugins.

/*
Plugin Name: Plugin Ejemplo Avanzado
Plugin URI: https://tuweb.com/plugin-ejemplo
Description: Plugin de ejemplo que añade un shortcode [hola_plugin] y carga un script en el frontend.
Version: 1.0.0
Requires at least: 5.5
Tested up to: 6.5
Requires PHP: 7.4
Author: Tomàs Cascante
Author URI: https://tomascascante.com
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: plugin-ejemplo
Domain Path: /languages
*/

// === BLOQUE 2: FUNCIONALIDAD PRINCIPAL ===
// Este bloque añade un shortcode que se puede usar en cualquier entrada o página de WordPress.
// Al escribir [hola_plugin] se muestra un mensaje personalizado en azul.

function pej_hola_shortcode() {
    return '<p style="color:blue; font-weight:bold;">Hola desde el Plugin Ejemplo</p>';
}
add_shortcode('hola_plugin', 'pej_hola_shortcode');

// === BLOQUE 3: FUNCIONES COMPLEMENTARIAS ===
// Este bloque incluye funciones auxiliares típicas en plugins reales.

// Al activar el plugin, guarda una opción en la base de datos
function pej_al_activar() {
    add_option('pej_activado', 'sí', '', 'yes');
}
register_activation_hook(__FILE__, 'pej_al_activar');

// Al desactivarlo, elimina la opción guardada
function pej_al_desactivar() {
    delete_option('pej_activado');
}
register_deactivation_hook(__FILE__, 'pej_al_desactivar');

// Carga un script JavaScript en el frontend (por ejemplo, para ampliar funcionalidad)
function pej_cargar_scripts() {
    wp_enqueue_script(
        'pej-script',
        plugin_dir_url(__FILE__) . 'js/script-ejemplo.js',
        array(), // dependencias
        '1.0',
        true // en footer
    );
}
add_action('wp_enqueue_scripts', 'pej_cargar_scripts');

// Carga los archivos de traducción si existen en /languages
function pej_cargar_textdomain() {
    load_plugin_textdomain('plugin-ejemplo', false, dirname(plugin_basename(__FILE__)) . '/languages');
}
add_action('plugins_loaded', 'pej_cargar_textdomain');

?>
Scroll al inicio