web-dev-qa-db-fra.com

Comment déclarer une variable globale dans PHP Je peux utiliser plusieurs modèles?

Dans wordpress, il appelle header.php, quel que soit le nom du modèle ou la page demandée. Comment puis-je déclarer une variable dans mon en-tête php à laquelle je peux ensuite me référer dans mes autres modèles? 

27
Claire

La réponse dépend à peu près de ce dont vous avez besoin. Si vous développez un thème et souhaitez conserver des valeurs constantes dans tous les fichiers, vous pouvez les placer dans functions.php dans le répertoire theme, qui est toujours chargé. Les variables définies doivent être disponibles partout dans le thème. Cela fonctionne si vous distribuez le thème.

Si vous souhaitez modifier un thème existant pour vos besoins sur votre propre installation, vous pouvez soit le placer dans wp-config.php, comme suggéré, ou (méthode plus propre) vous pouvez créer un thème enfant du thème que vous souhaitez modifier. . Cela le séparera du noyau wordpress et empêchera les mises à jour de thèmes d'écraser vos modifications.

Je viens de l'essayer en utilisant functions.php:

functions.php:

$variable = "value";

header.php:

global $variable;
echo $variable;

travaille pour moi.

38
Gerald Schneider

Vous pouvez le déclarer comme tel (dans functions.php):

global $domain;
$domain = 'http://www.mydomain.com/';

Vous pouvez cependant rappeler le domaine du site WordPress.

<?php bloginfo('site_url');?>

Ou

$url = site_url();
echo $url;

Ou en tant que fonction, dans functions.php

function displayMyDomain() {
  global $domain; // you probably don't actually need to set it global as it is a function
  $domain = 'http://www.domain.com/';
  echo $domain;
}

Puis n'importe où, utilisez <?php displayMyDomain(); ?>

7
SMacFadyen

Vous pouvez les définir dans le fichier wp-config.php.

Le fichier de configuration n'étant jamais mis à jour, votre installation Wordpress conservera ces variables au fil du temps, même si vous le mettez à jour.

<?php
  require_once('wp-config.php');
  echo $domain;
?>
4
Mihai Iorga

Une autre façon de définir les constantes globales dans Wordpress, si pour des raisons de bonnes pratiques vous ne voulez pas ajouter de variable à votre WP-config (pour le garder propre?). Et pour certaines raisons, votre portée variable n’obtient pas la portée globale partout dans votre site Web.

Vous pouvez simplement utiliser:

define( 'MY_VARIABLE', 'My Value' );

Pour plus d'informations sur la portée de consts: http://php.net/manual/fr/language.constants.php

1