• Buenos días!!,

    estoy desarrollando un plugin para mi instancia de wordpress y quiero invocar una función de dicho plugin desde el fichero functions.php de mi tema (después invoco esa función del functions.php desde el header.php del propio tema) y no hay manera, o no obtengo ningún valor u obtengo el error:

    Fatal error: Call to undefined function…

    Independientemente del resto de la funcionalidad del plugin, para probar esta comunicación plugin-tema he hecho una función hola_mundo que es la que intento llamar. la definición de mi plugin es como sigue:

    /*
    Plugin Name: Notificador de Entradas
    Plugin URI: #
    Description: Notifica la creacion de una Entrada al Grupo de Supervision de Analisis.
    Version: 1.0
    Author: Jose
    Author URI: #
    */
    class notificador_entradas {

    var $opt;
    var $nombre_tabla;

    // inicializamos plugin
    function notificador_entradas_mapfre() {
    global $wpdb;

    $this->nombre_tabla = $wpdb->prefix.’notificador_entradas’;

    register_activation_hook(__FILE__, array(&$this, ‘instalar’));
    register_deactivation_hook(__FILE__, array(&$this, ‘desinstalar’));
    }

    public function hola_mundo () {
    return «Hola mundo!!!»;
    }

    public function instalar () {
    create table…
    }

    public function desinstalar () {
    drop table…
    }
    }

    $miplugin = new notificador_entradas ();

    después desde el functions.php de mi tema he intentado invocar la función de varias maneras, aunque sin éxito en todas ellas:

    – Llamar directamente a la función hola_mundo. Obtengo el error que comentaba arriba. Si la llamo anteponiendo un if (function_exists (hola_mundo)) no obtengo el error, pero no devuelve ningún resultado.

    – Indicar en el constructor de la clase del plugin que la función es una acción (esto lo he hecho de 3 maneras):
    add_action (‘hola_mundo’, ‘hola_mundo’);
    add_action (‘hola_mundo’, array(&$this, ‘hola_mundo’));
    add_action(‘init’, array(&$this, ‘hola_mundo’));

    y hacer la llamada desde functions.php con:
    do_action (hola_mundo);

    en ninguno de los 2 casos obtengo resultado alguno.

    – Intentar declarar el objeto del plugin como variable global para invocarlo desde la función del functions.php de la siguiente manera:

    En el plugin:

    global $miplugin;
    $miplugin = new notificador_entradas ();

    En el functions.php del tema:

    global $miplugin;
    $miplugin->hola_mundo ();

    no obtengo ningún resultado de esta manera tampoco.

    la verdad es que ya no se que hacer, se me está iendo la pinza con este tema y estoy convencido que debe ser una chorrada, pero no lo veo. He estado mirando en los foros de wordpress.org y stackoverflow y no consigo hacerlo funcionar :(.

    ¿Se le ocurre algo a alguien?… cualquier respuesta será bienvenida :).

    Muchas gracias por adelantado!!
    Un saludo.

    José.

  • El debate ‘Invocar función de un plugin desde el fichero functions.php del tema actual’ está cerrado a nuevas respuestas.