您的查询完全错误。你应该使用合适的tax_query
. 还要注意的是,运行查询仅统计帖子的成本非常高。设置fields
paremeter只返回帖子ID。这可以节省99.9%的资源。
只需注意tax_query
这很重要。有效值为slug
, term_id
和name
. 此值必须与传递给terms
参数因此,如果字段设置为slug
, 您必须将术语slug传递给terms
. 请勿使用name
参数中存在错误WP_Tax_Query
类,如果术语的名称由多个单词组成,则查询将失败。
您可以尝试以下方法
$args = array(
\'post_type\' => \'accommodations\',
\'no_paging\' => true, // Gets all posts
\'fields\' => \'ids\', // Gets only the post ID\'s, saves on resources
\'tax_query\' => array(
array(
\'taxonomy\' => \'location\', // Taxonomy name
\'field\' => \'slug\', // Field to check, valid values are term_id, slug and name
\'terms\' => \'new-york\' // This value must correspond to field value. If slug, use term slug
)
),
);
$the_query = new WP_Query( $args );
echo $the_query->found_posts;