Come richiamare una funzione del plugin da index.php
Ho creato una funzione nel mio plugin myplugin
con il nome foo
, come posso richiamarla dal frontend?
// Controlla se la funzione esiste
if(function_exists('foo')) {
foo(); // Richiama la funzione
}

Allo stesso modo di qualsiasi altra funzione:
foo();
I plugin attivi vengono caricati prima dei file del tema
Potresti voler verificare che il tuo plugin sia attivato e che la funzione sia disponibile, in modo che le cose non vadano male se dimentichi di attivarlo, ad esempio:
if(function_exists('foo')){
foo();
} else {
echo "Oh no, non hai attivato/installato 'myplugin', fallo prima che la funzionalità 'foo' sia disponibile";
}
Tieni anche presente che foo
è un nome di funzione molto generico, forse anche il plugin "omgfoo" ha una funzione foo
. Quindi aggiungi un prefisso/namespace alla tua funzione per renderla unica
Alla fine vorrai utilizzare azioni e filtri, poiché sono più sicuri e rappresentano una pratica migliore, puoi continuare a leggere al riguardo qui

Non dovresti. Un tema non dovrebbe dipendere da un plugin se non in un ambiente molto controllato. Utilizza invece azioni e filtri.
Quindi nel tuo tema potresti usare:
do_action( 'before_header' );
… oppure …
$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'] );
Nel tuo plugin utilizza add_action()
e add_filter()
per modificare o aggiungere nuovi contenuti. In questo modo il tema continuerà a funzionare quando il plugin è stato disattivato e non dovrai usare function_exists()
.

I plugin attivi vengono caricati (tecnicamente - i loro file vengono inclusi ed elaborati da PHP durante il caricamento di WordPress) quando vengono eseguiti i template del tema.
Quindi la tua funzione dovrebbe essere disponibile e può essere chiamata come qualsiasi altra funzione:
<?php foo(); ?>
ad esempio.
