- Status
- Aberto
Visão geral do problema
A função nativa do WordPress has_category não funciona para posts traduzidos.
Um exemplo disso é o seguinte:
- Temos uma categoria com o slug em inglês “test” e sua tradução em francês “test-fr”.
- Essa categoria é atribuída a posts.
- Quando você invoca a has_category(”test”) dentro de um loop no arquivo single.php do seu tema, ela retorna true para o idioma padrão, mas false para a tradução.
Solução alternativa
Defina um novo filtro no arquivo functions.php do seu 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);Substitua a função has_category por este novo filtro:
apply_filters( 'wp_has_category', 'test' )
Este filtro obtém a categoria traduzida com base no nome da original e verifica se a categoria traduzida está atribuída a um post.