Вопрос или проблема
тема:
functions.php
function one_admin_menu() {
add_menu_page(
'Однодашборд',
'Одно',
'manage_options',
'one_menu',
'one_menu_url',
'dashicons-admin-site',
1
);
}
add_action( 'admin_menu', 'one_admin_menu' );
function one_menu_url() {
include( get_template_directory() . '/includes/admin/main_one/main.php' );
}
main.php
<?php
function one_admin_website() {
$web = get_template_directory_uri() . '/includes/admin/main_one/website.php';
echo $web;
}
?>
<script>
function import_admin_menu(when, where, what) {
jQuery(document).ready(function() {
jQuery(when).click(function() {
jQuery(where).load(what);
});
});
}
</script>
<ul>
<li id='website'><a href="#about">Вебсайт</a></li>
</u>
<script>
import_admin_menu('#website', '#one_main_admin', '<?php one_admin_website() ?>' )
</script>
<div id='one_main_admin'> </div>
website.php
моя проблема здесь, я просто пытаюсь вывести директорию шаблона, и у меня возникает фатальная ошибка: Uncaught Error: Call to undefined function get_template_directory_uri()
<?php echo get_template_directory_uri(); ?>
где я ошибся? я пытался искать в Google и StackOverflow, но ничего не нашел. спасибо за ваше время
Пожалуйста, проверьте ваш домен.
В моем случае URL выглядит так.
http://xxx.local/wp-content/themes/{ваш_шаблон}
измените на
Это исправило.
Иногда неправильный URL вызывает эту проблему.
get_template_directory_url
нет
get_template_directory_uri
Ответ или решение
Ошибка «Fatal error: Call to undefined function get_template_directory_uri()» в WordPress может возникнуть по нескольким причинам. В данном ответе мы подробно разберем возможные источники этой проблемы и как их исправить.
1. Понимание функции get_template_directory_uri()
Функция get_template_directory_uri()
является стандартной функцией WordPress, которая возвращает URL-адрес директории текущей темы. Это позволяет разработчикам динамически ссылаться на ресурсы темы, такие как стили, скрипты и изображения.
2. Причины возникновения ошибки
2.1. Ошибка вне контекста WordPress
В большинстве случаев эта ошибка возникает, если код, который вызывает функцию get_template_directory_uri()
, выполняется вне контекста WordPress. Например:
- Код, помещенный в файл PHP, который не является частью темы или плагина.
- Вызов функции до загрузки WordPress, например, в файле
functions.php
до того, как wordpress инициализировался.
2.2. Проблемы с импортом файла
Если вы вызываете функцию в файле, который был подключен некорректно или до полной инициализации системы WordPress, это также может привести к подобной ошибке.
include( get_template_directory() . '/includes/admin/main_one/main.php' );
Этот вызов должен находиться в контексте, где WordPress уже загружен.
3. Решения
3.1. Проверка места вызова функции
Убедитесь, что вы вызываете функцию get_template_directory_uri()
непосредственно в файле, который загружается через WordPress, например, в шаблоне страницы, в functions.php
, или в действии, связанном с хуками WordPress (например, wp_enqueue_scripts
).
3.2. Использование хуков
Для обеспечения корректной загрузки функций WordPress, таких как get_template_directory_uri()
, рекомендуется использовать хуки. Например:
function one_admin_website() {
$web = get_template_directory_uri() . '/includes/admin/main_one/website.php';
echo $web;
}
add_action('admin_menu', 'one_admin_website');
При использовании данного подхода функция будет вызываться в нужный момент.
3.3. Проверка URL-адреса
Как уже было упомянуто в описании проблемы, убедитесь, что ваш сайт правильно настроен. Если вы работаете на локальном сервере, как указано в вашем запросе, проверьте, что URL-адрес вашего сайта правильный и доступен.
4. Заключение
Следуя вышеуказанным рекомендациям, вы сможете успешно устранить ошибку «Call to undefined function get_template_directory_uri()» в WordPress. Убедитесь, что ваш код взаимодействует в полном контексте WordPress и корректно настроен на рабочем сервере. Если у вас остались вопросы или появились дополнительные проблемы, не стесняйтесь обратиться к сообществу WordPress за поддержкой.