Ce que je veux faire est d'inclure un de mes scripts PHP dans un thème Word Press. Le problème est qu'après avoir inclus le fichier de script, je ne peux pas accéder, à l'intérieur des fonctions dans le fichier de thème, les variables déclarées dans le fichier de script.
J'ai créé un nouveau fichier dans le dossier de thème et ajouté le même code que dans header.php et si j'ouvre ce fichier il fonctionne très bien. Donc, autant que je sache, c'est quelque chose que WordPress raconte.
/other/path/wordpress/wp-content/themes/theme-name/header.php // this is broken
/other/path/wordpress/wp-content/themes/theme-name/test.php // this works
/var/www/vhosts/domain/wordpress/ ->(symlink)-> /other/path/wordpress/
/other/path/wordpress/wp-content/themes/theme-name/header.php
/var/www/vhosts/domain/include_file.php
Contenu: /var/www/vhosts/domain/include_file.php
$global_var = 'global';
print_r($GLOBALS); // if I open this file directly this prints globals WITH $global_var;
// if this file is included in header this prints all the WP stuff WITHOUT $global_var;
Contenu:/autre/chemin/wordpress/wp-content/themes/thème Nom/tête .php nécessite '/path/to/include_file.php';
print $global_var; // this prints 'global' as expected
function test()
{
global $global_var;
print $global_var; // this is NULL
}
test();
print_r($GLOBALS); // this prints all the WP stuff WITHOUT $global_var in it
Les globales sont une mauvaise pratique, ne l'utilisez pas – silent
Je dois l'utiliser pour une fonction qui fonctionne comme un autochargeur et qui reçoit son paramètre automatiquement. global était le moyen le plus simple d'obtenir des données. – Brayn