Suporte » Desenvolvendo com WordPress » ASORT não lista em ordem corretamente

  • Resolvido sdcom

    (@sdcom)


    Bom dia,

    Estou com um pequeno problema na listagem de custom taxonomia.
    O código está assim:

    $all_terms = [];
    if ( have_posts() ) { while ( have_posts() ) { the_post(); {
    $terms = (array) get_the_terms( $post->ID, ‘modelo’ );
    foreach ( $terms as $term ) {
    $all_terms[ $term->name ] = get_term_link( $term, ‘modelo’ );
    }
    }
    }
    wp_reset_postdata();

    ksort( $all_terms ); ?>

    foreach ( $all_terms as $term_name => $term_link ){

    //restante do código…

    Um exemplo:

    Na Linha Honda, usando o ksort, a listagem fica assim:

    Accord, CR-V, City, Civic/New Civic, Fit/New Fit

    Ele não segue uma ordem, pois o CR-V, teria que vir entre o Civic e o Fit imagino eu.
    Seguindo isso, já na linha Alfa Romeo, ele começa a listar na ordem de letras primeiro e depois os números, que para mim, teria que ser o contrário, números primeiro e depois as letras.

    Eu troquei o ksort e usei asort. Funcionou para os exemplos da linha Honda e Alfa Romeo, porém agora meu problema apareceu na linha Peugeot. Ele está listando da seguinte forma:

    207, 206, 3008, 306, 307, 308, 208…

    Veja que ficou bem bagunçado pois o 207 teria que vir depois do 206, o 208 depois do 207 e assim por diante.

    Existe uma maneira de deixar isso em ordem crescente começando por números e depois letras, espaços e caracteres especiais, respeitando a hierarquia do alfabeto?

    Porque o asort funcionou para Honda e Alfa Romeo, e não para Peugeot?

Visualizando 1 resposta (de um total de 1)
  • Pessoal, encontrei o problema.
    Os SLUGS estavam errados fazendo com que a ordem ficassem como no exemplo citado da Peugeot.

Visualizando 1 resposta (de um total de 1)
  • Você deve estar conectado para responder a este tópico.