1

I have a custom argument validator for Views, which expects a term name input and outputs the tid for the query. This works great in English, but I'm not sure what to do for translations. Is there any way to search for a term id from the translated term name?

Here's my code:

public function validateArgument($argument) { if(strpos($argument, '-')){ $argument = str_replace('-', ' ', $argument); } $term = taxonomy_term_load_multiple_by_name($argument); $termId = key($term); $this->argument->argument = $termId; return TRUE; } 

1 Answer 1

1

A suggestion :

$my_translated_term_name = 'astuce'; $query = \Drupal::database()->select('taxonomy_term_field_data', 'td'); $query->addField('td', 'tid'); $query->condition('td.name', $my_translated_term_name); // For better performance, define the vocabulary where to search. // $query->condition('td.vid', $vid); $term = $query->execute(); $tid = $term->fetchField(); 
3
  • This seems to work (thank you!). Could I use this to fetch both translated and untranslated names? Would that be efficient/make sense? Commented Nov 21, 2018 at 15:32
  • Meant to say tids from both translated and untranslated names* Commented Nov 21, 2018 at 15:42
  • yes you can get tids for translated and untranslated terms Commented Nov 21, 2018 at 15:48

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.