通常情况下,这应该与get_queried_object_id()
.
无论如何,由于我不知道Woo对查询究竟做了什么,这也可能是错误的,因为API函数引用了当前查询的对象。这是上次查询中的对象。因此,您还可以执行以下操作:
免责声明:以下编写的函数未经测试,您应该var_dump()
你的方式,直到它的工作(然后编辑这个问题与你的结果和删除这行在这里)
<?php
defined( \'ABSPATH\' ) OR exit;
/** Plugin Name: Cat ID helper for WooCommerce */
add_action( \'pre_get_posts\', \'wpse_98288_get_object_id\', 0 );
function wpse_98288_get_object_id( $query = null )
{
static $id = 0;
if ( \'pre_get_posts\' === current_filter() )
remove_filter( current_filter(), __FUNCTION__ );
$query->is_main_query()
AND $id = $query->get( \'cat_id\' );
if ( null !== $query )
return $query;
return $id;
}
因此,这是一个多用途函数,必须用作插件(更好的是:用作mu插件)。它将自己添加到循环/wp\\u查询构建过程中,并尝试从主循环获取ID。然后,您可以在模板中通过其函数名再次调用它,它应该输出ID。
重点是你必须var_dump( $wp_query )
要确定具体设置了什么,并获取您需要的内容,因为我现在还不知道值名称。