В wordpress он вызывает header.php, а затем любое имя шаблона или запрошенную страницу. Как я могу объявить переменную в моем заголовке php, о котором я могу обратиться в других моих шаблонах?
Как объявить глобальную переменную в PHP, которую я могу использовать во всех шаблонах?
Ответ 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";