WPML
Estado
Abierto

Resumen del problema

La función nativa de WordPress has_category no funciona para las entradas traducidas.

Un ejemplo de esto es el siguiente:

  1. Tenemos una categoría con el slug en inglés «test» y su traducción al francés «test-fr».
  2. Esta categoría está asignada a entradas.
  3. Cuando invoca has_category(”test”) dentro de un bucle en el archivo single.php de su tema, devuelve true para el idioma predeterminado, pero false para la traducción.

Solución alternativa

Defina un nuevo filtro en el archivo functions.php de su 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);

Reemplace la función has_category con este nuevo filtro:
apply_filters( 'wp_has_category', 'test' )

Este filtro toma la categoría traducida basándose en el nombre de la original y comprueba si la categoría traducida está asignada a una entrada.

Todos los problemas conocidos →