Подтвердить что ты не робот

Как объявить глобальную переменную в PHP, которую я могу использовать во всех шаблонах?

В wordpress он вызывает header.php, а затем любое имя шаблона или запрошенную страницу. Как я могу объявить переменную в моем заголовке php, о котором я могу обратиться в других моих шаблонах?

4b9b3361

Ответ 1

Ответ в значительной степени зависит от того, для чего вам это нужно. Если вы разрабатываете тему и хотите сохранить значения постоянными через все файлы, вы можете поместить их в functions.php в каталог тем, который всегда загружается. Переменные, определенные там, должны быть доступны повсюду в теме. Это работает, если вы распространяете тему.

Если вы хотите изменить существующую тему для своих нужд на своей собственной установке, вы можете либо поместить их в wp-config.php, как было предложено, либо (более чистый метод), вы можете создать дочернюю тему темы, которую вы хотите изменить. Это будет держать его отдельно от ядра wordpress и предотвратит перезапись изменений темы.

Я просто попробовал его с помощью functions.php:

functions.php:

$variable = "value";

header.php:

global $variable;
echo $variable;

работает для меня.

Ответ 2

Вы можете определить их в файле wp-config.php.

Файл конфигурации никогда не обновляется, поэтому ваша установка Wordpress будет иметь эти переменные со временем, даже если вы ее обновите.

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

Ответ 3

Вы можете объявить его так (In functions.php):

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

Вы можете эхо-адрес домена сайта WordPress, как это, однако..

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

или

$url = site_url();
echo $url;

Или как функция, в 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;
}

Затем в любом месте используйте <?php displayMyDomain(); ?>

Ответ 4

Другой способ определить глобальные константы в Wordpress, если для достижения наилучшей практики вам не нужно добавлять переменную в WP-config (чтобы она была чистой?). И по некоторым причинам ваша область переменных не получает глобальную область видимости на вашем веб-сайте.

Вы можете просто использовать:

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

Дополнительные сведения о области consts: http://php.net/manual/en/language.constants.php

Ответ 5

Я думаю, что php session является одним из способов использования в качестве глобальной переменной Wordpress.

1. Functions.php

if(!session_id()) {
    session_start();
}

2. Любой файл .php, в который вы хотите установить или получить глобальные переменные

  • получить переменную

    if(isset($_SESSION['global_var'])) {
        $local_var = $_SESSION['global_var'];
    }
    
  • установить переменную

    $_SESSION['global_var'] = "This is global var";