Home Ajuda Pesquisa Login Registre-se
 
Bem-vindo, Visitante. Por favor faça o Login ou Registre-se.
Perdeu o seu email de activação?

Login com nome de usuário, senha e duração da sessão
 
Notícias: Este fórum está sendo construído. Já é possível registrar-se e postar suas dúvidas, mas ainda estamos começando!
 

Páginas: [1]
  Imprimir  
Autor Tópico: Tutorial: excluindo categorias da home no WordPress  (Lida 2502 vezes)
Administrador Fórum do Software
Administrador
Membro Jr.
*****
Mensagens: 75


Ver Perfil
« : 13 de Janeiro de 2010, 14:04 »

Excluindo categorias da home
Existem várias maneiras de excluir categorias da home, inclusive com o uso de plugins. Eu, pessoalmente, prefiro não usar plugins para depois não ter que me preocupar com atualizações e com a possibilidade de o plugin ser descontinuado. Então, aí vão as minhas maneiras preferidas de resolver esse probleminha.

1. Adicionar uma nova query ao Loop
Essa solução já foi comentada em outro tópico por aqui:Tutorial: Entendendo o Loop do Wordpress.

Essa maneira é relativamente simples e te permite modificar outras coisas na query, mas tem a desvantagem de quebrar a paginação se não for feita corretamente. Por isso, faça da seguinte forma:

Código:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("cat=-ID&paged=$paged"); ?>

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

O que esse código faz é simples: ele verifica qual é a página em que se encontra no momento, e insere essa informação na nova query que está sendo feita, ou seja, que está substituindo a query original.

Lembre-se de substituir "ID" pelo ID da categoria que você quer excluir da home. Você pode checar isso rapidamente indo em Posts > Categorias no seu painel de administração.

A desvantagem desse método é que a query acaba sendo feita duas vezes. Uma, originalmente, e outra que corresponde à que você está inserindo. Em sites com muito tráfego, é uma carga a mais no servidor.


2. Criando um filtro para modificar a query original
O segundo método é mais simples ainda. Tudo o que você tem que fazer é acrescentar essas linhas de código ao seu arquivo functions.php. Se o seu tema não tiver um, crie-o e salve-o na pasta do tema (lembrando de colocar
Código:
<?php
no início do arquivo e
Código:
?>
no final.

Código:
function exclude_category($query) {
if ( $query->is_home ) {
$query->set('cat', '-5');
}
return $query;
}

add_filter('pre_get_posts', 'exclude_category');

Fonte: Zeo
Lembre-se de trocar o "5" pelo ID da categoria que você quer excluir. Mantenha o sinal de negativo. Mais uma vez, você pode checar isso rapidamente indo em Posts > Categorias no seu painel de administração

« Última modificação: 22 de Janeiro de 2010, 10:46 por Renato » Registrado
powerrs
Novato
*
Mensagens: 4


Ver Perfil
« Responder #1 : 02 de Julho de 2011, 10:50 »

Boa dica. Funciona que é uma Beleza.
Mas tenho uma dúvida. Teria uma forma de especificar que apenas a Categoria 5 aparecesse na Home, excluindo automaticamente qualquer outra?
Para evitar sempre editar o  functions.php e adicionar uma nova categoria.
grande abraço e sucesso!
Registrado
Administrador Fórum do Software
Administrador
Membro Jr.
*****
Mensagens: 75


Ver Perfil
« Responder #2 : 07 de Julho de 2011, 13:00 »

Sim, é só tirar o sinal de negativo do ID da categoria.
Registrado
Páginas: [1]
  Imprimir  
 
Ir para: