How can I display the node count values for taxonomy terms with sorting the result list in descending order of node count?
5 Answers
- Create a taxonomy view
- Add node group in relationship
- Add term name and node nid fields for display
- Enable aggregation in "Other" section (Use aggregation: Yes)
- Click nid field settings icon, choose group type "count".
Find the export of views that worked for me.
$view = new view;
$view->name = 'term_node_count';
$view->description = 'Displays node count values for terms';
$view->tag = '';
$view->base_table = 'taxonomy_term_data';
$view->human_name = 'term_node_count';
$view->core = 7;
$view->api_version = '3.0-alpha1';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
/* Display: Defaults */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->display->display_options['use_ajax'] = TRUE;
$handler->display->display_options['group_by'] = TRUE;
$handler->display->display_options['access']['type'] = 'none';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '100';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['pager']['options']['id'] = '0';
$handler->display->display_options['pager']['options']['expose']['items_per_page_options_all'] = 0;
$handler->display->display_options['style_plugin'] = 'table';
$handler->display->display_options['style_options']['columns'] = array(
'name' => 'name',
'nid' => 'nid',
);
$handler->display->display_options['style_options']['default'] = '-1';
$handler->display->display_options['style_options']['info'] = array(
'name' => array(
'sortable' => 0,
'default_sort_order' => 'asc',
'align' => '',
'separator' => '',
),
'nid' => array(
'sortable' => 0,
'default_sort_order' => 'asc',
'align' => '',
'separator' => '',
),
);
$handler->display->display_options['style_options']['override'] = 1;
$handler->display->display_options['style_options']['sticky'] = 0;
/* Relationship: Taxonomy: Node */
$handler->display->display_options['relationships']['nid']['id'] = 'nid';
$handler->display->display_options['relationships']['nid']['table'] = 'taxonomy_index';
$handler->display->display_options['relationships']['nid']['field'] = 'nid';
$handler->display->display_options['relationships']['nid']['required'] = 0;
/* Field: Taxonomy: Term */
$handler->display->display_options['fields']['name']['id'] = 'name';
$handler->display->display_options['fields']['name']['table'] = 'taxonomy_term_data';
$handler->display->display_options['fields']['name']['field'] = 'name';
$handler->display->display_options['fields']['name']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['name']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['name']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['name']['alter']['trim'] = 0;
$handler->display->display_options['fields']['name']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['name']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['name']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['name']['alter']['html'] = 0;
$handler->display->display_options['fields']['name']['element_label_colon'] = 1;
$handler->display->display_options['fields']['name']['element_default_classes'] = 1;
$handler->display->display_options['fields']['name']['hide_empty'] = 0;
$handler->display->display_options['fields']['name']['empty_zero'] = 0;
$handler->display->display_options['fields']['name']['link_to_taxonomy'] = 1;
/* Field: Node: Nid */
$handler->display->display_options['fields']['nid']['id'] = 'nid';
$handler->display->display_options['fields']['nid']['table'] = 'node';
$handler->display->display_options['fields']['nid']['field'] = 'nid';
$handler->display->display_options['fields']['nid']['relationship'] = 'nid';
$handler->display->display_options['fields']['nid']['group_type'] = 'count';
$handler->display->display_options['fields']['nid']['label'] = 'Count';
$handler->display->display_options['fields']['nid']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['nid']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['nid']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['nid']['alter']['trim'] = 0;
$handler->display->display_options['fields']['nid']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['nid']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['nid']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['nid']['alter']['html'] = 0;
$handler->display->display_options['fields']['nid']['element_label_colon'] = 1;
$handler->display->display_options['fields']['nid']['element_default_classes'] = 1;
$handler->display->display_options['fields']['nid']['hide_empty'] = 0;
$handler->display->display_options['fields']['nid']['empty_zero'] = 0;
$handler->display->display_options['fields']['nid']['link_to_node'] = 1;
/* Display: Block */
$handler = $view->new_display('block', 'Block', 'block_1');
$translatables['term_node_count'] = array(
t('Defaults'),
t('more'),
t('Apply'),
t('Reset'),
t('Sort By'),
t('Asc'),
t('Desc'),
t('Items per page'),
t('- All -'),
t('Offset'),
t('node'),
t('Term'),
t('Count'),
t('Block'),
);
-
What to do if you would like to get the node counts of the terms attached to the actual node?– TemarukSep 8, 2011 at 16:55
All the previous answers were very helpful.
I wanted to get a table so I could let the user sort by Term or by count.
To do this I:
- Relationship > Taxonomy term: Content with term
- Use aggregation: Yes
- Field > Content: Nid
- Aggregation type for Nid = Count DISTINCT
-
What's missing is how to get the two fields to show up in-line. For that, you need to go to Format -> Show -> Settings, and check both as in-line items.– colanAug 6, 2013 at 14:34
To get a taxonomy node count correctly for taxonomy terms you need to do the following:
- In Fileds: add Taxonomy term: Name
- In Relationships, add a Taxonomy term: Content with term
Add a contextual filter for Taxonomy term: Name
3a. Choose 'Display a summary'
3b. Choose 'Display Record count with link'. Also set base path if you want the taxonomy page to be linked correctly.
The key is that you have make sure you've ticked the "aggregation" check box in the advanced option of the view.
-
1This would work much better as an edit to someone else's answer (or you could write a more complete answer). Mar 7, 2016 at 16:54
Add an argument (renamed 'contextual filter' in the latest Views) for taxonomy terms, and choose 'Display a summary'. Then, choose to display 'Number of records'.
-
-
Then it is labeled "Arguments". However, you should probably just upgrade to the latest version. Mar 25, 2011 at 18:04
-
3.0-alpha1 is the latest version views for drupal 7. Do you mean upgrade to the dev version?– ya.teckMar 25, 2011 at 18:43
-
2The alpha1 was obsolete on January 6th. There should be an alpha2 this weekend, but yes, use the dev. Mar 25, 2011 at 19:47
-
Views 3.0-rc1. Tried as you posted above, but i only get for example: Category (1), Cats (1). Everywhere is 1 near taxonomy terms, though i have lots of nodes inside terms. What's wrong? Jul 16, 2011 at 4:06