谁能告诉我如何从AJAX文件中获取get\\u queryed\\u object\\u id?
我尝试的是:
$object_id = get_queried_object_id();
print_r($object_id); die();
// Outputs 0
global $wp_query;
$object_id = $wp_query->get_queried_object_id();
print_r($object_id); die(\'\');
// Outputs 0
据我所知,我无法得到
get_queried_object_id
在AJAX中,那么我应该如何以正确的方式获得它呢?
更新:的输出global $wp_query;var_dump($wp_query);exit;
["queried_object"]=>
NULL
["queried_object_id"]=>
NULL
["request"]=>
NULL
["posts"]=>
NULL
["post_count"]=>
int(0)
["current_post"]=>
int(-1)
["in_the_loop"]=>
bool(false)
["post"]=>
NULL
["comments"]=>
NULL
["comment_count"]=>
int(0)
["current_comment"]=>
int(-1)
["comment"]=>
NULL
["found_posts"]=>
int(0)
["max_num_pages"]=>
int(0)
["max_num_comment_pages"]=>
int(0)
["is_single"]=>
bool(false)
["is_preview"]=>
bool(false)
["is_page"]=>
bool(false)
["is_archive"]=>
bool(false)
["is_date"]=>
bool(false)
["is_year"]=>
bool(false)
["is_month"]=>
bool(false)
["is_day"]=>
bool(false)
["is_time"]=>
bool(false)
["is_author"]=>
bool(false)
["is_category"]=>
bool(false)
["is_tag"]=>
bool(false)
["is_tax"]=>
bool(false)
["is_search"]=>
bool(false)
["is_feed"]=>
bool(false)
["is_comment_feed"]=>
bool(false)
["is_trackback"]=>
bool(false)
["is_home"]=>
bool(false)
["is_404"]=>
bool(false)
["is_embed"]=>
bool(false)
["is_paged"]=>
bool(false)
["is_admin"]=>
bool(false)
["is_attachment"]=>
bool(false)
["is_singular"]=>
bool(false)
["is_robots"]=>
bool(false)
["is_posts_page"]=>
bool(false)
["is_post_type_archive"]=>
bool(false)
["query_vars_hash":"WP_Query":private]=>
bool(false)
["query_vars_changed":"WP_Query":private]=>
bool(true)
["thumbnails_cached"]=>
bool(false)
["stopwords":"WP_Query":private]=>
NULL
["compat_fields":"WP_Query":private]=>
array(2) {
[0]=>
string(15) "query_vars_hash"
[1]=>
string(18) "query_vars_changed"
}
["compat_methods":"WP_Query":private]=>
array(2) {
[0]=>
string(16) "init_query_flags"
[1]=>
string(15) "parse_tax_query"
}
}
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成
好吧,让我们从试着理解开始,什么get_queried_object
函数执行。根据itsCodex page:
检索当前查询的对象。例如:
如果您在一篇文章中,它将返回post对象如果您在一个页面中,它将返回page对象如果您在存档页面中,它将返回post类型对象如果您在类别存档中,它将返回category对象如果您在作者存档中,它将返回author对象等,此函数返回应根据此请求的URL查询当前请求的对象。
但是AJAX调用是其他独立的请求。如果您使用AJAX API, 您应该这样做,然后创建一个请求wp-admin/admin-ajax.php
文件因此,没有为该请求查询对象。
如果在AJAX函数中需要查询的对象,那么必须在JS中发出的请求中传递它。
比如说,我们在一个帖子页面上。这个get_queried_object
函数返回该对象。我们想用AJAX执行一些操作,我们需要在该操作中使用post对象。在这种情况下,您必须:
将查询对象的ID传递给JS脚本在JS中使用该ID,并将其放入随AJAX请求发送的数据中在AJAX回调函数中使用该数据