Alterar ordem da lista de taxonomia personalizada

10

Por padrão, o WordPress ordena taxonomias personalizadas (como tags, neste caso) por ordem alfabética, não pela ordem em que foram inseridas na caixa de tags.

Alguém tem conhecimento de como mostrar as taxonomias personalizadas na ordem em que foram inseridas na tela de edição de postagens?

O URL em questão é: enlace

Os artistas GGW (Goes Good With) estão em ordem alfabética e querem que sejam alterados para que sejam ordenados da mesma forma que foram inseridos.

Portanto, se inserirmos Artist1, Artist3, Artist2, é assim que ele deve aparecer no frontend do site.

    
por curtismchale 21.01.2011 / 17:36

4 respostas

0

Isso não é possível "fora da caixa" ...

As opções padrão 'orderby' são (ascendente ou descendente)

  • nome da ID
  • Padrão
  • slug
  • conta
  • term_group

Estes são todos detalhados no códice.

-

Dito isto, há algumas senhoras inteligentes & senhores aqui. Se alguém puder resolver isso, um desses caras pode ter certeza!

    
por George Wiscombe 27.01.2011 / 01:25
6

Após bastante pesquisa e testes extensivos, encontrei a resposta.

Adicione este código às funções do seu tema.php:

function set_the_terms_in_order ( $terms, $id, $taxonomy ) {
    $terms = wp_cache_get( $id, "{$taxonomy}_relationships_sorted" );
    if ( false === $terms ) {
        $terms = wp_get_object_terms( $id, $taxonomy, array( 'orderby' => 'term_order' ) );
        wp_cache_add($id, $terms, $taxonomy . '_relationships_sorted');
    }
    return $terms;
}
add_filter( 'get_the_terms', 'set_the_terms_in_order' , 10, 4 );

function do_the_terms_in_order () {
    global $wp_taxonomies;  //fixed missing semicolon
    // the following relates to tags, but you can add more lines like this for any taxonomy
    $wp_taxonomies['post_tag']->sort = true;
    $wp_taxonomies['post_tag']->args = array( 'orderby' => 'term_order' );    
}
add_action( 'init', 'do_the_terms_in_order');

(Crédito: isso é baseado em - mas melhorou - enlace )

    
por Biranit Goren 21.02.2012 / 13:21
2

Eu tenho lutado para encontrar a resposta para termos alfabéticos de criança de uma taxonomia personalizada ... Eu não recomendaria a alteração de arquivos principais do WP, então aqui está o que eu adicionei ao meu arquivo taxonomy.php para listar descrições de taxonomia personalizadas , com links para termos filhos em ordem alfabética. Modifique para atender às suas necessidades, espero que isso ajude alguém lá fora.

// Get Main Taxonomy for use in template file
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$termTaxonomy = $term->taxonomy;

<h1><?php echo apply_filters( 'the_title', $term->name ); ?></h1>

<?php // test for description before unleashing a div 
if ( !empty( $term->description ) ): 
  echo '<div class="description">';
  echo $term->description;
  echo '</div>;
endif; ?>

// Now get children terms, using get_term & 'child_of' get's us alphabetical order
$termchildren = get_terms( $termTaxonomy, array(
  'child_of'     => $term->term_id,
  'hierarchical' => 0,
  'fields'       => 'ids',
  'hide_empty'   => 0
) );

// Make an alphabetical linked list
echo '<ul>';
foreach ($termchildren as $child) {
  $term = get_term_by( 'id', $child, $termTaxonomy );

  // Modify this echo to customize the output for each child term
  echo '<li><a href="' . get_term_link( $term->name, $termTaxonomy ) . '" alt="' .$term->description. '">' . $term->name . '</a></li>';
}
echo '</ul>';
    
por Erik Rodne 31.07.2012 / 21:44
1

Eu sei que isso é uma espécie de trapaça, mas você sempre pode usar o Simple Custom Post Order plugar. É grátis e permite que você classifique taxonomias além de Post Types.

    
por Nate 11.09.2017 / 17:50