Pagina com Categorias e Página com Subcategorias

1,549 views
Skip to first unread message

Diego Charles

unread,
Aug 26, 2011, 4:18:58 PM8/26/11
to WordPress Brasil Lista
Estou precisando implantar um site de uma loja de pneus, onde meu
cliente deseja que:

1. Ao clicar em PRODUTOS, seja exibida uma tela com as CATEGORIAS PAI,
que seria o tipo de veículo: (Automóveis, Vans, Caminhões, Outros).

2. Então nesta pagina que lista apenas a categorias PAI, vamos supor
que o cliente deseja conhecer os pneus para automóveis, então ele irá
clicar em AUTOMÓVEIS, e então irá aparecer uma página listando apenas
as subcategorias de AUTOMOVEIS, que nesse caso serão os AROS
disponíveis - Aro 13, Aro 14, Aro 15...

3. O usuário então seleciona por exemplo, Aro 14. Então irá aparecer
uma nova tela, listando as subcategorias de Automoveis->Aros 13, que
nesse caso serão as marcas que ele revende: Continental, Firestone,
etc..

4. Por fim, ao clicar em Continental por exemplo, aí sim serão
listados os produtos, pneus continental, aro 13 para automóveis.

Sei que se torna cansativo para o usuário, mas o cliente quer assim...
rsrsrsrs

Ja tentei usar o plugin WordPress E-commerce, e tentei também usar as
próprias categorias do wordpress, cadastrando as categorias pai
(tipos), subcategorias (aros), e suas subcategorias (marcas), e um
post para cada pneu, relacionado com a subcategoria de marcas.

Alguém pode me dar uma ajuda de como eu monto esses links, templates,
etc ?

JimmyMacedo

unread,
Aug 26, 2011, 5:57:20 PM8/26/11
to wordpres...@googlegroups.com
Boa noite Diego, você já considerou criar uma custom taxonomy? Basicamente seria uma classificação paralela, para que você não precise criar todos os 'aros' várias vezes em cada categoria.


Jimmy Lopes de Macedo
con...@jimmymacedo.com





--
Você recebeu esta mensagem por estar inscrito na lista de debates "WordPress Brasil" através do sistema Google Groups.

Para enviar uma mensagem: wordpres...@googlegroups.com
Para cancelar sua inscrição: wordpress-bras...@googlegroups.com
Para visitar o grupo: http://groups.google.com.br/group/wordpress-brasil?hl=pt-BR

Temas: http://wordpress.org/extend/themes/
Plugins: http://wordpress.org/extend/plugins/
Projeto WordPress: http://br.wordpress.org/

JimmyMacedo

unread,
Aug 26, 2011, 5:59:41 PM8/26/11
to wordpres...@googlegroups.com
O mesmo serviria para as Marca, ao invés de você selecionar A Categoria > Aro > Marca, você teria 3 box de categorias na edição do post, um pra selecionar as Categorias, outro para as Marcas e outro para os Aros.


Jimmy Lopes de Macedo
con...@jimmymacedo.com





Diego Charles

unread,
Aug 26, 2011, 8:20:19 PM8/26/11
to WordPress Brasil Lista
Ok, vou dar uma olhada na documentação que você me indicou, fazer uns
experimentos, e posto o resultado aqui assim que concluir.

Obrigado pela dica ;)

On Aug 26, 6:59 pm, JimmyMacedo <cont...@jimmymacedo.com> wrote:
> O mesmo serviria para as Marca, ao invés de você selecionar A Categoria >
> Aro > Marca, você teria 3 box de categorias na edição do post, um pra
> selecionar as Categorias, outro para as Marcas e outro para os Aros.
>
> Jimmy Lopes de Macedo
> cont...@jimmymacedo.com
>
> <http://www.facebook.com/jimmymacedo> <http://twitter.com/jimmymacedo>
> <http://br.linkedin.com/pub/jimmy-macedo/27/7b4/242>
> <http://lattes.cnpq.br/4509397096603463>
>
> Em 26 de agosto de 2011 18:57, JimmyMacedo <cont...@jimmymacedo.com>escreveu:
>
>
>
>
>
>
>
> > Boa noite Diego, você já considerou criar uma custom taxonomy<http://codex.wordpress.org/Taxonomies>?
> > Basicamente seria uma classificação paralela, para que você não precise
> > criar todos os 'aros' várias vezes em cada categoria.
>
> > Jimmy Lopes de Macedo
> > cont...@jimmymacedo.com
>
> > <http://www.facebook.com/jimmymacedo> <http://twitter.com/jimmymacedo>
> > <http://br.linkedin.com/pub/jimmy-macedo/27/7b4/242>
> > <http://lattes.cnpq.br/4509397096603463>

Diego Charles

unread,
Aug 26, 2011, 8:33:37 PM8/26/11
to WordPress Brasil Lista
Infelizmente eu preciso que o Aro 13 seja uma subcategoria do tipo de
automóvel. Apesar de achar isso bem redundante. Eu já ate consegui
organizar isso bem no admin, criando as categorias e relacionando os
produtos (posts) em cada categoria, e o cliente também. Só preciso
mesmo saber de alguma função, shortcode, plugin, que me deixe colocar
por exemplo:

1. dentro da página PRODUTOS, exibir apenas os nomes das categorias
primárias (Tipo de veículo).

2. Quando o usuário clicar em uma dessas categorias, então preciso de
algo que exiba apenas os nomes das categorias filho de Automoeis por
exemplo...

Pode me ajudar ?

On Aug 26, 6:59 pm, JimmyMacedo <cont...@jimmymacedo.com> wrote:
> O mesmo serviria para as Marca, ao invés de você selecionar A Categoria >
> Aro > Marca, você teria 3 box de categorias na edição do post, um pra
> selecionar as Categorias, outro para as Marcas e outro para os Aros.
>
> Jimmy Lopes de Macedo
> Em 26 de agosto de 2011 18:57, JimmyMacedo <cont...@jimmymacedo.com>escreveu:
>
>
>
>
>
>
>
> > Boa noite Diego, você já considerou criar uma custom taxonomy<http://codex.wordpress.org/Taxonomies>?
> > Basicamente seria uma classificação paralela, para que você não precise
> > criar todos os 'aros' várias vezes em cada categoria.
>
> > Jimmy Lopes de Macedo

JimmyMacedo

unread,
Aug 27, 2011, 8:15:55 AM8/27/11
to wordpres...@googlegroups.com
Nesse caso, na página da categoria pai você vai utilizar o get_categories e no campo 'child_of' vai colocar o id da categoria pai. a função retorna um array de categorias.


Jimmy Lopes de Macedo
con...@jimmymacedo.com





Cicero Henrique

unread,
Aug 27, 2011, 8:19:35 AM8/27/11
to wordpres...@googlegroups.com
   Esse codigo exibe titulo da categoria, e os posts das sub-categorias ...

        <div class="grid_24">    
       
             <?php
                       
             $args = array('include'=>3,'type'=>'post','taxonomy'=>'category','hide_empty'=>false);
             $maes = get_categories($args);
              
             ?>
              <ul>
             <?php foreach($maes as $mae):?>
            
                <?php $args   =   array('child_of'=>$mae->term_id); $filhas =   get_categories($args);?>

            
                <h1><?php print $mae->cat_name;?></h1>
                
                         
                        <?php foreach($filhas as $filha):?>

                            <li>
                                
                                <h2 style="color:#ff0000;"><?php print $filha->cat_name;?></h2>
                                
                                <?php 
                                    $args = array('cat'=>$filha->term_id,'showposts'=>1);
                                    $query_filha = new WP_Query();
                                    $query_filha->query($args);
                                ?>
                                    
                                    <ul>
                            
                                      <?php while($query_filha->have_posts()): $query_filha->the_post();?>

                                      
                                       <?php if(has_post_thumbnail()): the_post_thumbnail('thumb-150x112');endif;?>
                                      

                                        <?php endwhile; rewind_posts();?>
                             
                                   </ul>
                            </li>
                                
                         <?php endforeach;?>
                
                
                   
                
            <?php endforeach;?>
       </ul>
    </div>
    

Diego Charles

unread,
Aug 28, 2011, 5:00:41 PM8/28/11
to WordPress Brasil Lista
Pessoal, consegui algum progresso:

Através do arquivo functions.php, eu criei um shortcode
'display_parent_categories':

<?php

function display_parent_categories() {

$parentscategory = "";

$args = array(
'hide_empty' => 0,
'exclude' => 1
);

$parentscategory .= '<div id="categories_container">';

foreach((get_categories($args)) as $category) {

if ($category->category_parent == 0) {
$parentscategory .= '<div class="category_container">';
$parentscategory .= ' <a href="' . get_category_link($category-
>cat_ID) . '" title="' . $category->name . '">' . $category->name . '</
a>';
$parentscategory .= "</div>\n";
}
}

$parentscategory .= "</div>";

echo $parentscategory;
}


add_shortcode('parent_categories', 'display_parent_categories');
?>

Na página de produtos, eu então inseri o shortcode no editor.

Agora, as categorias pai são exibidas corretamente, porém os links são
gerados /produtos/automoveis, para lugar nenhum !

Agora eu preciso que quando seja acessada a URL /produtos/automoveis,
sejam exibidas as categorias filhas de automoveis, no caso por aros.

Alguem pode me dar um help ?

Ah, o projeto é esse: www.autobox3.com.br

Obrigado

Pra onde eu devo linkar agora ?
> Em 27 de agosto de 2011 09:15, JimmyMacedo <cont...@jimmymacedo.com>escreveu:
>
>
>
>
>
>
>
> > Nesse caso, na página da categoria pai você vai utilizar o get_categories<http://codex.wordpress.org/Function_Reference/get_categories>e no campo 'child_of' vai colocar o id da categoria pai. a função retorna um
> > array de categorias.
>
> > Jimmy Lopes de Macedo

Diego Charles

unread,
Aug 31, 2011, 12:04:52 PM8/31/11
to WordPress Brasil Lista
Alguém pode me dar um help ??

Leo Baiano

unread,
Aug 31, 2011, 2:08:45 PM8/31/11
to wordpres...@googlegroups.com
Parceiro, li aqui o primeiro e-mail que você mandou e vou te propor uma solução, mas esta minha solução ignora tudo que você já fez, porém é prática e vai funcionar, ou seja, se voltar ao ponto de partida pode seguir o script abaixo que você chega lá.

Vamos ao que interessa...

1 - Cria uma categoria chamada produtos, as categorias "automóveis, vans e etc..." serão filhas de produtos, depois cria as outras categorias seguindo sua hierarquia;
2 - Cria um arquivo chamado category.php com o código abaixo, no lugar do loop que mostra posts:

global $cat;
$categoriasFilhas = get_categories('parent=' . $cat);
foreach($categoriasFilhas as $category) {
echo '<p><a href="' . get_category_link( $category->term_id ) . '" >' . $category->name.'</a></p>';
}

O código acima vai listar as categorias filhas da categoria atual, exemplo, se você acessar a página da categoria produtos, ela vai listar todas as categorias filhas de produtos, estando lá se você clicar em uma categoria a página que vai abrir irá listar as categorias filhas desta.

O parametro "parent" que utilizei no método get_categories, recebe como valor o ID da categoria e retorna apenas os descendentes diretos, ou seja, na página produtos o get_categories vai listar apenas "automoveis, vans, caminhões...", porém não vai listar "aro 13, Aro 15..." porque são sub de automoveis e não de produtos, sacou?

A única dúvida que eu tenho no código acima é se "global $cat" vai retornar mesmo o ID da categoria atual, se não der certo da um echo $cat logo abaixo da linha 1, se não retornar o ID da categoria tenta substituir a primeira linha por:

global $post;
$categoria = get_the_category($post->ID);

Com os passos 1 e 2 você já trem a estrutura de navegação, mas ainda vamos precisar construir o loop que vai listar os produtos quando o usuário chegar nas categorias "aros x". Ainda no arquivo category.php, no local onde você vai exibir os produtos você vai colocar o loop do WordPress que lista os posts, cada produto será um post da categoria.

Qualquer dúvida é só falar.
Amplexos,

Leo Baiano
http://www.leobaiano.com
http://www.blog.ljunior.com
http://www.mcelebridades.com
http://www.twitter.com/leobaiano
Reply all
Reply to author
Forward
0 new messages