查询多个分类并显示帖子计数

时间:2011-07-25 作者:Rajeev Vyas

我有自定义的帖子类型“Product”,以及2个自定义分类“category”和“Product status”。

我想做的是在页面模板中列出类别,并显示类别中的产品总数,以及其中有多少产品的状态为“可用”

像这样的东西

类别|产品编号|可用产品

任何一个都可以展示如何从其他分类法中获取属于特定类别且具有特定状态值的帖子。。。

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

我相信自定义sql查询会更好,但这里有一个使用可用WordPress工具的选项

//first get all categories
$categories = get_terms( \'category\', array(
    \'orderby\'    => \'count\',
));

//then create an array for easier processing
foreach ( $categories as $cat ) {
       $slugs[] = $cat->slug;
       $counts[$cat->slug][\'count\'] = $cat->count;
}

//then loop over the categories and for each one create a "query" to count the number of available products
foreach($slugs as $term){
    $products = get_posts(array(
        \'post_type\' => \'product\',
        \'posts_per_page\' => -1,
        \'tax_query\' => array(
            \'relation\' => \'AND\',
            array(
                \'taxonomy\' => \'category\',
                \'field\' => \'slug\',
                \'terms\' => array( $term)
            ),
            array(
                \'taxonomy\' => \'product_status\',
                \'field\' => \'slug\',
                \'terms\' => array( "available"),
                \'operator\' => \'NOT IN\',
            )
        )   
    ));
    $counts[$term][\'available\'] = count($products);
}

//then all the is left is to print everyting Out
if (count($counts) > 0){
    echo \'<table><tr><td>Category</td><td>No. of products</td><td>Products available</td></tr>\';
    foreach ($counts as $key => $val){
        echo \'<tr><td>\'.$key.\'</td><td>\'.$var[\'count\'].\'</td><td>\'.$var[\'available\'].\'</td></tr>\';
    }
    echo \'</table>\';
}

结束

相关推荐

Css不支持jQuery用户界面对话框

我想向表单页面添加jQuery对话框模式。当对话框被触发时,我看到的是文本内容,但没有CSS。我正在函数中引入jquery。页面的php:wp_enqueue_script(\'jquery-ui-dialog\'); jquery css(jquery ui dialog.css)位于我的wp includes/css目录下。我尝试添加wp_enqueue_style(\'jquery-ui-dialog\'); 但它不起作用。有人知道启用jQuery对话框的正确方法吗。