@caof19

Почему пишет, что путь не правильный?

Здравствуйте, делаю ajax запрос для своего сайта, и появилась проблема: у меня в functions.php прописан require к моему файлу с ajax зпроосами
require get_template_directory() . '/inc/ajax.php';

В этом файле один ajax запрос, делает он следующее
function load_works() {
    $args = unserialize( stripslashes( base64_decode( $_POST['query'] ) ) );
    $args['paged'] = $_POST['current_page'] + 1;

    query_posts( $args );
    if ( have_posts() ) :
        while ( have_posts() ): the_post();
//                echo get_the_title();
            require '../template/items-work.php';
        endwhile;
    endif;;
    wp_die();
}

Вроде все верно, но в дебаг лог пишет что файла по этому пути не существует, в чем может быть проблема?
Структура следующая:
5ea859fc545ab091077746.png
UPD:
При том, что если переместить этот код чисто в functions, и поменять путь (убрать "../") - все работает
  • Вопрос задан
  • 31 просмотр
Решения вопроса 2
SagePtr
@SagePtr
Еда - это святое
Потому что путь указывается не относительно файла, в котором находится вызов функции require, а относительно текущей директории. К примеру, если пользователь вызвал скрипт https://domain.name/a/b/c.php, то текущая директория будет $_SERVER['DOCUMENT_ROOT'].'/a/b' и все относительные пути будут строиться от неё, независимо от глубины вложенности подключаемых файлов, а не относительно подключаемых файлов.
Если хотите указать путь относительно вашего файла вне зависимости от текущей директории, можете воспользоваться константой __DIR__, например.
Ответ написан
Комментировать
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Всегда используйте абсолютные пути. Всегда. И не будет таких вопросов.
// require '../template/items-work.php';
require get_template_directory() . '/template/items-work.php';
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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