- Stato
- Aperto
Panoramica del problema
La funzione nativa di WordPress has_category non funziona per gli articoli tradotti.
Un esempio è il seguente:
- Abbiamo una categoria con lo slug in inglese “test” e la sua traduzione in francese “test-fr”.
- Questa categoria è assegnata agli articoli.
- Quando richiami has_category(”test”) all’interno di un loop nel file single.php del tuo tema, restituisce true per la lingua predefinita ma false per la traduzione.
Soluzione alternativa
Definisci un nuovo filtro nel file functions.php del tuo tema:
function wp_has_category ($category) {
$category = get_term_by('name', $category, 'category');
return has_category($category);
}
add_filter('wp_has_category', 'wp_has_category', 10, 1);Sostituisci la funzione has_category con questo nuovo filtro:
apply_filters( 'wp_has_category', 'test' )
Questo filtro prende la categoria tradotta in base al nome di quella originale e verifica se la categoria tradotta è assegnata a un articolo.