优化Wordpress查询

时间:2017-05-11 00:20:47

标签: mysql wordpress

我正在使用大型产品数据库的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!

1 个答案:

答案 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 );