Невозможно получить get_queried_object () из функции, называемой archive.php

Я написал поле «автозаполнение» в файле archive.php - ввод в него вызывает функцию, определенную в functions.php. Вот пример кода:

function ajax_search_archive() {
$term = get_queried_object();
if (!$term) return;

(... continued...)
}

Я попробовал это на странице архива «тег», затем на странице «Категория». Каждый раз функция вызывалась, а затем возвращалась 0 во второй строке, потому что полученный «get_queried_object» был нулевым, хотя я ожидал, что это не так.

Пожалуйста, что я не так?

php,wordpress,taxonomy-terms,

0

Ответов: 1


0

Еще раз спасибо за комментарии, которые показали мне способ решить мою собственную проблему.

Функция get_queried_object (), похоже, работает при вызове самого archive.php, но не при вызове из функции, определенной в другом файле, даже если эта другая функция вызывается в файле archive.php. Это осознание привело меня к некоторым обновлениям:

a) в файле archive.php: получение get_queried_object (), сохранение его идентификатора в скрытое поле (например, «archive_id»);

b) вызов «автозаполнения» Ajax в его скрипте: отправка идентификатора объекта в качестве другого аргумента (значение, полученное с помощью jQuery - например, «$ ('# archive_id»). val () ");

c) функция ajax_search_archive в functions.php: извлечение идентификатора объекта из запроса POST.

PHP, WordPress, таксономия-термины,
Похожие вопросы