Suporte » Plugins » Mapa de Representantes

  • Resolvido Johnny Demarch

    (@johnnydemarch)


    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?

Visualizando 15 respostas - 1 até 15 (de um total de 19)
  • Moderador Leo Baiano

    (@leobaiano)

    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.

    Criador do tópico Johnny Demarch

    (@johnnydemarch)

    Olá Leo.

    Tenho bastante conhecimento em HTML + CSS, e Básico em JS + PHP.

    Podes me ajudar?

    Criador do tópico Johnny Demarch

    (@johnnydemarch)

    Para facilitar, já estou com o HTML, CSS e JS todo pronto.
    Só preciso deixar dinâmico essa parte.

    Moderador Leo Baiano

    (@leobaiano)

    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 chamado taxonomy-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_WordPress

    Criador do tópico Johnny Demarch

    (@johnnydemarch)

    Nossa, 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?

    Criador do tópico Johnny Demarch

    (@johnnydemarch)

    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?

    Criador do tópico Johnny Demarch

    (@johnnydemarch)

    Consegui listar os estados usando o seguinte termo:

    <?php wp_list_categories('taxonomy=estados&title_li='); ?>

    Está correto?

    Criador do tópico Johnny Demarch

    (@johnnydemarch)

    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.

    Moderador Leo Baiano

    (@leobaiano)

    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.

    Moderador Míriam de Paula

    (@miriamdepaula)

    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.

    Criador do tópico Johnny Demarch

    (@johnnydemarch)

    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.

    Criador do tópico Johnny Demarch

    (@johnnydemarch)

    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?

    Moderador Míriam de Paula

    (@miriamdepaula)

    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

    Criador do tópico Johnny Demarch

    (@johnnydemarch)

    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;
    						}
    
    					?>
    Moderador Míriam de Paula

    (@miriamdepaula)

    Fico feliz que tenha dado tudo certo!
    Abs!

Visualizando 15 respostas - 1 até 15 (de um total de 19)
  • O tópico ‘Mapa de Representantes’ está fechado para novas respostas.