web-dev-qa-db-fra.com

où inclure un fichier php 

J'ai un fichier php avec quelques variables que j'aimerais utiliser.

Lorsque je l'inclue dans le fichier header.php, les variables de ce fichier ne sont pas reconnues sur footer.php et d'autres endroits.

Où est le meilleur endroit pour inclure ce fichier afin que son contenu soit partagé dans tous les fichiers wp.

2
Ofer

Les variables ont une certaine portée. Le Manuel PHP explique cela en détail . Ainsi, lorsque vous définissez une variable, vous devez savoir dans quelle portée celles-ci sont définies. Cela dépend de l'endroit où vous les définissez et de la manière dont ce fichier est inclus.

Comme Rarst l'a déjà suggéré, le fichier function.php est un endroit idéal, car il est inclus dans l'espace global lorsque votre thème est actif.

A côté de cela, la portée s'applique toujours. Le fichier footer.php, par exemple, n'est normalement pas inclus dans l'étendue globale. Pour accéder à vos variables, si vous les avez définies globalement, vous pouvez vous référer au tableau $GLOBALS superglobal .

Cela le fait normalement pour certaines variables. Si vous en avez plusieurs, vous pouvez éventuellement associer toutes vos variables à un tableau. Vous n'avez donc qu'un seul nom de variable à définir dans la portée globale. Cela maintient les choses un peu plus éloignées les unes des autres, ce qui facilite les choses à long terme. Parce que si vous nommez vos variables de la même manière que les variables existantes, vous les écraserez. Cela peut casser des choses difficiles à déboguer.

Exemple:

dans function.php

$mytheme_config = array();
$mytheme_config['extra_footer_display'] = true;

dans footer.php

if ($GLOBALS['mytheme_config']['extra_footer_display']) {
    // executed when extra_footer_display is true
}

Ceci est juste un exemple très basique, mais il fait probablement déjà le travail pour vous. Je ne connais pas votre niveau d'expérience avec PHP, mais comme vous le débutez probablement, les liens fournis ci-dessus vous permettent de comprendre comment cela fonctionne. N'oubliez pas que les éléments de modèle ne sont pas chargés dans l'étendue globale. Vous devez donc référencer les variables globales à l'aide du tableau $GLOBALS superglobal pour pouvoir y accéder. $GLOBALS fait toujours référence aux variables globales, quelle que soit la portée de l'accès.

5
hakre

Le meilleur endroit pour inclure du code dans le thème est généralement Fonctions Fichier (functions.php) plutôt que des fichiers de modèle (qui peuvent et sont souvent remplacés par des plugins, des thèmes enfants, etc).

En fonction de vos spécificités, vous pouvez définir des constantes ou créer une fonction wrapper et le raccorder à une action en cours à une étape ultérieure du chargement du thème.

En fonction des spécificités, vous pouvez également consulter l'API Options pour stocker les valeurs dans la base de données.

8
Rarst

Vous devez créer les constantes de variables et les inclure dans header.php. L'utilisation d'index.php ne les inclura que sur votre page d'accueil/page de blog principale, en fonction de vos paramètres, et ratera toutes les catégories, balises, recherches et pages.

0
curtismchale