Не удается получить get_queried_object () из функции, вызываемой в archive.php - PullRequest
0 голосов
/ 24 августа 2018

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

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

(... continued...)
}

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

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

1 Ответ

0 голосов
/ 24 августа 2018

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...