В Drupal 8 мне удавалось отображать только теги с результатами со следующим кодом.Обратите внимание, что я использую модуль Contribute Better Exposed Filters и отображаю свой фильтр как Select.
function mymodule_form_views_exposed_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if ($form['#id'] == 'views-exposed-form-your-view-name-page') {
if (array_key_exists('field_activities_target_id', $form)) {
// Rewrite the default 'All' option
if (!empty($form['field_activities_target_id']['#options']['All'])) {
$option_default = ['All' => t('Choose a category')];
}
$options = $form['field_activities_target_id']['#options'];
$connection = Database::getConnection();
$query = $connection->select('node__field_activities', 'activities');
$query->join('node_field_data', 'n', 'n.nid = activities.entity_id');
$query->fields('activities', ['field_activities_target_id']);
$query->fields('n', ['status']);
$query->condition('activities.bundle', 'your_node_type_name');
$query->condition('n.status', 1);
$data = $query->distinct()->execute();
$results = array_flip($data->fetchAll(\PDO::FETCH_COLUMN, 'field_activities_target_id'));
$options = array_intersect_key($options, $results);
// Rebuild the option select
$form['field_activities_target_id']['#options'] = $option_default + $options;
}
}
}
Эта статья очень помогла: