我正在使用大型产品数据库的WordPress网站上工作。我需要列出所有具有单一分类学术语例外的产品。使用wp_query()会创建一个巨大的对象并需要很长时间。此外,出于某种原因,我的论点不会排除我不希望列出的一个分类术语中的产品。这是我目前的查询:
$args = array(
'post_type' => 'products',
'post_status' => 'publish',
'orderby' => 'post_title',
'numberposts' => -1,
'tax_query' => array(
'taxonomy' => 'product-main-cats',
'field' => 'term_id',
'terms' => array(23),
'operator' => 'NOT IN',
),
);
$prods = new WP_Query( $args );
我想使用wpdb类重写此查询,以便我只获取我的列表所需的内容而不是巨大的wp_query()对象。我需要来自wp_post表的唯一列是ID和post_title。我只是不确定mySQL语法,尤其是排除与单一分类术语相关的帖子。任何人都可以帮我改写吗?
TIA!
答案 0 :(得分:0)
您可以通过$wpdb
编写此查询,我在您的WP_Query下面附加了一个sql查询版本。
global $wpdb;
$results = $wpdb->get_results( "SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'products' AND ((wp_posts.post_status = 'publish')) ORDER BY wp_posts.post_title DESC", ARRAY_A );