J'ai essayé de trouver le moyen le plus efficace d'utiliser des fonctions dans WordPress.
J'ai une grosse fonction lente big_slow_function () idéalement exécutée une seule fois. Mais je dois utiliser le booléen renvoyé par cette fonction dans tous mes fichiers de thème (dans header.php, page.php, sidebar.php, footer.php, loop-page.php, functions.php, etc.).
Je me demande comment faire cela.
J'ai essayé de mettre cela dans mon functions.php pour éviter d'appeler big_slow_function () plus d'une fois:
global $my_important_boolean;
function $get_my_important_boolean()
{
global $my_important_boolean;
if ($my_important_boolean == NULL) // if big_slow_function() has not been run yet
$my_important_boolean = big_slow_function();
return $my_important_boolean;
}
Et puis je mets un code comme celui-ci dans mes fichiers de thème:
if ($get_my_important_boolean()) {
// customize content to user
}
Mais la fonction big_slow_function () est toujours exécutée à chaque fois. Je ne suis pas sûr de ce que je fais de travers et j'ai eu du mal à trouver une bonne documentation sur la portée variable dans WordPress. Peut-être dois-je passer une référence/un pointeur à la variable?
Toute aide relative à ce problème est très appréciée, car je me bats depuis un moment.
function my_big_function() {
static $result;
// Function has already run
if ( $result !== null )
return $result;
// Lot of work here to determine $result
$result = 'whatever';
return $result;
}
Voir aussi: https://stackoverflow.com/questions/6188994/static-keyword-inside-function