Donc, j'ai un thème Wordpress.Variables ne se reportant pas au fichier inclus dans un répertoire différent
Dans le fichier functions.php, j'écris une fonction qui ressemble à quelque chose comme ceci:
function my_function(){
$var1 = 'apple';
$var2 = 'orange';
include get_bloginfo('stylesheet_directory').'/lib/fruits.php';
}
Et le fichier fruits.php ressemble à ceci:
<?php
echo "My brother's favorite fruit is an $var1, but my favorite fruit is an $var2.";
?>
Quand j'appelle my_function() quelque part dans mon thème, l'instruction echo dans fruits.php s'affiche à l'écran, mais les valeurs de $ var1 et $ var2 ne s'affichent pas. Ils sont simplement vides.
Maintenant, voici la partie étrange. Si je déménage fruits.php dans le même répertoire que functions.php, et changer l'instruction include my_function() à ceci:
include 'fruits.php';
les 2 variables affichent très bien.
Des idées sur ce qui pourrait être à l'origine de ce problème?
Pour votre information, j'ai essayé de définir le chemin d'accès fruits.php dans une variable puis essayer
include $path;
en vain.
Cela devrait fonctionner. Il y a quelques informations supplémentaires manquantes dans votre situtation. Le code sera inclus dans votre fonction afin que les variables soient accessibles. Étrange est que vous préférez le répertoire include avec wordpress 'stylesheet_directory' qui est une URL, pas un chemin de fichier donc il ne devrait pas être utilisé pour inclure des fichiers dans PHP. – webbiedave
Merci webbiedave. Votre intuition était juste sur. J'ai changé le chemin d'inclusion pour utiliser la constante STYLESHEETPATH à la place, et cela fonctionne maintenant parfaitement. Cela ressemble à un comportement étrange de la part de PHP. Dans mon code d'origine, il incluait le fichier, mais il ne contenait pas les variables. Pourquoi cela ne marcherait-il qu'à mi-chemin? Eh bien, peu importe, je m'en souviendrai dans le futur. Merci encore. – mjsiemer