Mapa de Representantes
-
Alguém sabe se tem como fazer um mapa de representantes dinâmico?
Por exemplo tem o mapa do Brasil, o usuário clica em um estado e lista os representantes daquele estado.
Alguém pode me ajudar?
-
Da para fazer, mas vai exigir um pouco de conhecimento de HTML + CSS + JS e PHP, posso te guiar no caminho, está disposto? Caso contrario só procurando um plugin pronto e não conheço nenhum para indicar.
Olá Leo.
Tenho bastante conhecimento em HTML + CSS, e Básico em JS + PHP.
Podes me ajudar?
Para facilitar, já estou com o HTML, CSS e JS todo pronto.
Só preciso deixar dinâmico essa parte.Olha só, o que você vai precisar é criar um CPT* chamado representantes e uma taxonomies**, para este CPT, chamada estado.
Feito isso você pode listar os estados com
get_terms();
***, cria um arquivo chamadotaxonomy-estado.php
**** e lá coloca o loop do WordPress, então quando clicarem em um dos estados vai chamar o template da taxonomy que você criou e listar os representantes do estado clicado.Observação, um CPT é um tipo personalizado de post, ao criar o CPT representantes vai aparecer um menu chamado Representantes, igual ao menu posts, e este terá um item chamado “estados” que vai funcionar igual a categoria dos posts. Quando clicar em adicionar novo representante você terá um box na lateral para marcar de qual estado é aquele representante.
Se tiver alguma dúvida é só falar.
—–
* http://codex.wordpress.org/Post_Types
** http://codex.wordpress.org/Taxonomies
*** http://codex.wordpress.org/Function_Reference/get_terms
**** http://codex.wordpress.org/pt-br:Hierarquia_de_Modelos_WordPressNossa, era isso que eu precisava. Eu não estava conseguindo chegar à lógica…
Mas tenho uma dúvida ainda.Por exemplo:
Na CPT estado, o cara vai criar posts como se fossem estados, correto? Adicionar novo > Santa Catarina > No conteúdo do post ele coloca os dados do representante. Ok. MAAAAAAAAAS, em SC não haverá um representante só. Então o cara teria que criar mais uma vez um post chamado Santa Catarina e colocar os dados do outro representante? Assim que funcionaria?
Leo Baiano.
Estou testando essa forma que você mostrou.
Criei a CPT chamada Representantes e uma taxonomy chamada Estados.
Criei um arquivo chamado taxonomy-estados.php.Estou com dificuldades para usar o get_terms para listar as taxonomias.
Outra dúvida, mas menos importante (por enquanto). O site inteiro funciona com liks permanentes customizados, somente a taxonomia que não. Tenho que usar os links permanentes padrao do WP para que funcione.
Sabes me informar porque acontece isso?
Consegui listar os estados usando o seguinte termo:
<?php wp_list_categories('taxonomy=estados&title_li='); ?>
Está correto?
Na CPT estado, o cara vai criar posts como se fossem estados, correto? Adicionar novo > Santa Catarina > No conteúdo do post ele coloca os dados do representante. Ok. MAAAAAAAAAS, em SC não haverá um representante só. Então o cara teria que criar mais uma vez um post chamado Santa Catarina e colocar os dados do outro representante? Assim que funcionaria?
Eu tinha entendido errado. Mas já compreendi. Representantes, o cara vai cadastrar os representantes, normal. E os estados o cara vai cadastrar nas taxonomias, como se fossem categorias.
Uma dúvida. No mapa, eu teria que colocar os links manualmente, correto? por exemplo:
echo home_url();/estados/sc
Então quando o usuário clicar ele vai recarregar a página com os dados. Minha ideia inicialmente era com jQuery. Mas se funcionar dessa maneira, está show de bola!
Vou continuar pesquisando até você responder minhas questões acima.
Opa man, só vi suas mensagens agora. No mapa você vai utilizar o get_terms para listar os estados e o get_link para pegar o link de cada term.
Olá!
Já fiz algo parecido uma vez http://rhema.com.br/representantes
1) Criei um CPT “Representante”
2) Criei uma custom taxonomy “estados”
3) No HTML, imprimi os estados em uma lista<ul> <li>..</li> </ul>
4) Fiz o posicionamento com CSS
É bastante simples.
Abs.
Show de bola.
Obrigado pela ajuda.Este projeto vou deixar em pausa por enquanto.
Em Janeiro darei continuidade, e volto aqui para postar o resultado, ou mais dúvidas!Grande abraço.
Oi pessoal.
Voltei para esse projeto que estava em stand by.
Já estou com quase tudo 100%.Estou com uma grande dificuldade para imprimir os estados com o get_terms.
Já tentei de tudo. Pensei que esse iria funcionar 🙁
$terms = get_terms( 'estados' ); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){ echo '<ul>'; foreach ( $terms as $term ) { echo '<li>' . $term->name . '</li>'; } echo '</ul>'; }
Alguém pode me dar o caminho?
Dica: Use sempre a função print_r() para debugar os seus códigos! (quando trabalhar com arrays!)
Seu código não está errado, mas tenho quase certeza que sua taxonomy ainda não deve ter postagens, então o WP, por padrão, não retorna nada.
Tente assim (exemplo):
$estados = get_terms('estados', array('hide_empty' => false)); //print_r($estados); <---- descomente este trecho de código para debugar pra ver se está vindo ou não resultados na variavel $estados
Sempre use o parametro
hide_empty => false
para que ele traga a listagem de termos, mesmo eles estando vazios.Espero ter ajudao
Oi Miriam.
Obrigado, foi de grande ajuda seu comentário.
Eu consegui fazendo dessa maneira:
<?php $args = array( 'fields' => 'all', 'hide_empty' => false ); $terms = get_terms( 'estados', $args ); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { $count = count( $terms ); $i = 0; $term_list = '<p class="my_term-archive">'; foreach ( $terms as $term ) { $i++; $term_list .= '<li id="'.$term->slug.'"><a href="' . get_term_link( $term ) . '" title="' . sprintf( __( 'View all post filed under %s', 'my_localization_domain' ), $term->name ) . '">' . $term->name . '</li></a>'; if ( $count != $i ) { $term_list .= ' '; } else { $term_list .= '</p>'; } } echo $term_list; } ?>
Fico feliz que tenha dado tudo certo!
Abs!
- O tópico ‘Mapa de Representantes’ está fechado para novas respostas.