Не могу запустить собственную функцию.
-
Есть моя тема mytheme, созданная при помощи underscores.me.
Есть моя дочерняя тема mytheme-child.В дочерней теме есть файл file.php по адресу
/mytheme-child/template-parts/myTemplateParts/file.php
(это его полный текст), который содержит функцию buildMainMenu():
———————————————————<?php echo('</br>HELLO, buildMainMenu()</br>'); function buildMainMenu(){ echo('</br>buildMainMenu: I have been started !</br>'); }
В дочерней теме есть файл /mytheme-child/functions.php
(это его полный текст), который загружает (включает)
файл file.php:
——————————————————-<?php echo('</br>START require "/template-parts/myTemplateParts/file.php"</br>'); require get_stylesheet_directory_uri() . '/template-parts/myTemplateParts/file.php'; echo('</br>END require</br>');
В дочерней теме есть файл header.php
/mytheme-child/header.php, в котором
вызывается функция buildMainMenu() из file.php
——————————-<HTML-код...> <?php echo('</br>HELLO, DOLLY !</br>'); buildMainMenu(); ?> <HTML-код...>
Запускаю свою страницу.
На экран выходят сообщения (echo):
START require — в functions.php запускается require
HELLO, buildMainMenu() — загрузился file.php
END require — в functions.php завершил работу require
HELLO, DOLLY ! — заработал header.php
Fatal error: Uncaught Error: Call to undefined function buildMainMenu() in…Если текст функции перенести из file.php в файл functions.php,
выбросив оператор require, — всё работает.Что не так ?
В PHP-инструкции говорится, что «…все функции и классы,
объявленные во включаемом файле, имеют глобальную область видимости.»Где я ошибся ?
Спасибо !
- Тема «Не могу запустить собственную функцию.» закрыта для новых ответов.