Visto che stampi a video un solo link, potresti uscire dal ciclo seguente dopo avere trovato un valore.
dovresti aggiungere del codice nel caso in cui non trovassi nulla per non scrivere un link "vuoto".Codice PHP:
//confronto elenco con materia post
foreach($termini as $elenco){
if(in_array($elenco,$materia)){
$cat_mat= strtolower($elenco);
$category_id = get_cat_ID( $elenco );
$cat_link= get_category_link($category_id);
<<< qui >>>
}
}