Cómo llamar a una función de plugin desde index.php

18 nov 2012, 17:02:12
Vistas: 36.9K
Votos: 9

He creado una función en mi plugin myplugin con el nombre foo, ¿cómo puedo llamarla desde el frontend?

// ¿por ejemplo en index.php?
3
Comentarios

hmmm una tasa de aceptación del 25% es bastante baja

Tom J Nowell Tom J Nowell
18 nov 2012 22:24:34

Cómo llamar a una función PHP dentro de un archivo PHP es una pregunta de PHP, no de WordPress.

Chip Bennett Chip Bennett
19 nov 2012 13:57:21

literalmente es una pregunta sobre plugins de WordPress @ChipBennett ....

nick nick
28 nov 2015 02:38:51
Todas las respuestas a la pregunta 3
0
16

De la misma manera que lo harías con cualquier otro:

foo();

Los plugins activos se cargan antes que los archivos del tema

Quizás quieras verificar que tu plugin está activado y que la función está disponible para que las cosas no salgan mal si olvidas activarlo, como:

if(function_exists('foo')){
    foo();
} else {
    echo "oh no, no has activado/instalado 'myplugin', hazlo antes de que la función 'foo' esté disponible";
}

También ten en cuenta que foo es un nombre de función muy genérico, quizás el plugin "omgfoo" también tiene una función foo. Así que añade un prefijo o espacio de nombres a tu función para hacerla única

Eventualmente querrás usar acciones y filtros, ya que son más seguros y una mejor práctica, puedes seguir leyendo sobre eso aquí

18 nov 2012 17:07:03
0

No deberías hacerlo. Un tema no debería depender de un plugin excepto en un entorno muy controlado. En su lugar, utiliza acciones y filtros.

Así que en tu tema podrías usar:

do_action( 'before_header' );

… o …

$bg_options = array (
    'wp-head-callback' => 't5_custom_background_frontend',
    'default-color'    => 'f0f0f0',
    'default-image'    => '',
);
$bg_options = apply_filters( 't5_theme_bg_options', $bg_options );
add_theme_support( 'custom-background', $bg_options );
add_action( 'login_head', $bg_options['wp-head-callback'] );

En tu plugin usas add_action() y add_filter() para cambiar o añadir nuevo contenido. De esta manera, el tema seguirá funcionando cuando el plugin haya sido desactivado y no tendrás que usar function_exists().

18 nov 2012 23:59:52
0

Los plugins activos están cargados (técnicamente hablando, sus archivos son incluidos y procesados por PHP durante la carga de WordPress) para cuando se ejecutan las plantillas del tema.

Por lo tanto, tu función debería estar disponible y puede ser llamada como cualquier otra función:

<?php foo(); ?>

por ejemplo.

18 nov 2012 17:05:38