get_queried_object()
将从主查询中获取当前查询的“thing”作为对象。那可能是WP_Post
, WP_Term
, 或WP_Post_Type
(对于post-type归档)对象,但我认为这并不是您想要的,在AJAX中也不会有用。
除此之外,没有一个函数可以精确地满足您的要求,但它可能无论如何都不可取。术语和帖子存储在单独的表中,因此很容易会有具有相同ID的术语和帖子。当然,如果存在该帖子,您可以获取该帖子,或者返回到现有代码中的术语,但是如果您期望给定ID的术语,但有具有相同ID的Customiser修订版,该怎么办?这不是特别有帮助,也可能不是你所要求的。更不用说了WP_Term
和WP_Post
具有不同的属性并表示完全不同的事物,这意味着它们不可互换,这使得此类函数的实用性值得怀疑。
如果您通过AJAX发送ID,并且希望回调函数中包含适当的对象,那么最好的方法是通过AJAX发送预期的对象类型,并基于此检索适当的函数。
$id = $_GET[\'id\'];
$object_type = $_GET[\'object_type\'];
switch ( $object_type ) {
case \'post\':
$object = get_post( $id );
break;
case \'term\':
$object = get_term( $id );
break;
}