WP Фатальная ошибка: Вызов неопределенной функции get_template_directory_uri()

Вопрос или проблема

тема:
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/{ваш_шаблон}

измените на

http://xxx.local/

Это исправило.
Иногда неправильный 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 за поддержкой.

Оцените материал
Добавить комментарий

Капча загружается...