无法从 archive.php 中调用的函数获取 get_queried_object()

Cannot get get_queried_object() from a function called in archive.php

我在 archive.php 中写了一个 "autocomplete" 字段 - 在其中键入会调用 functions.php 中定义的函数。这是代码示例:

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

(... continued...)
}

我在 "tag" 存档页面中尝试过,然后在 "category" 存档页面中尝试过。每次调用该函数,然后在第二行返回 0,因为检索到的 "get_queried_object" 为 null - 虽然我预计它不是。

拜托,我做错了什么?

再次感谢您的评论,让我找到了解决自己问题的方法。

函数 get_queried_object() 在 archive.php 本身中调用时似乎可以工作,但是从另一个文件中定义的函数调用时 不能 - 即使如果在 archive.php 中调用了其他函数。这种认识促使我进行了一些更新:

a) 在 archive.php 中:检索 get_queried_object(),将其 id 存储到隐藏字段中(例如 "archive_id)";

b) Ajax "autocomplete" 在其脚本中调用:将对象 ID 作为另一个参数发送(使用 jQuery 检索的值 - 例如 "$('#archive_id').val()");

c) functions.php 中的函数 ajax_search_archive:从 POST 请求中检索对象 ID。