@ishimskayamahorka14

Как задать переменную, значение которой можно будет вывести в любом месте сайта?

Подскажите, как задать единую переменную, значение которой можно будет вывести в любом месте сайта (header.php, footer.php и.т.д)?
Если я указываю это в functions.php, к примеру, как $city = 'Москва';, а потом в header.php вызываю echo $city;, то выводится пустота.
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
egor_nullptr
@egor_nullptr
Вместо $city используйте $GLOBALS['city'], переменная $GLOBALS доступна везде.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
samodum
@samodum
Какой вопрос - такой и ответ
Singleton
Но это не правильно.
Пользуйся общим классом для всего сайта.
Или настройками в xml, gradle и им подобным
Ответ написан
Комментировать
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Еще один вариант — использовать update_option()

$city_data = array(
	'iso-area' => 'RU-MOS',
	'title' => 'Москва',
	'gde' => 'в Москве',
	'kuda' => 'в Москву',
	'otkuda' => 'из Москвы',
	'chej' => 'Московский',
	'chego' => 'Москвы',
	'chemu' => 'Москве',
	'o-chem' => 'о Москве',
	'english' => 'Moscow',
	'population' => '12 655 050',
	'region' => 'central',
);

update_option( '_city_data', $city_data, 'yes' );


Вы можете один раз положить нужные вам данные в опции сайта и получать их любом нужном вам месте для использования

$site_data = get_option( '_site_data' );
vardump( $site_data['title'] );


Последний аргумент функции yes/no означает загрузку данных на autoload, т.е. её значение будет автоматически подгружаться в память при загрузке движка, а при обращении браться из кеша

Если поставить no, то обращение к опции создаст дополнительный запрос в базу. Выбирайте на основе того, на сколько часто вам нужна эта опция в проекте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы