Modifier l'ordre de la liste de taxonomie personnalisée

10

Par défaut, WordPress ordonne les taxonomies personnalisées (sous forme de balises) par ordre alphabétique et non par l'ordre dans lequel elles ont été entrées dans la zone de balise.

Quelqu'un sait-il qu'il existe un moyen d'afficher les taxonomies personnalisées dans l'ordre dans lequel elles ont été entrées dans l'écran de post-édition?

L'URL en question est la suivante: enlace

.

Les artistes de GGW (Goes Good With) sont actuellement classés par ordre alphabétique. Ils souhaitent que cela soit modifié afin que leur ordre soit identique à celui dans lequel ils ont été saisis.

Donc, si vous entrez Artist1, Artist3, Artist2, c'est ainsi que cela devrait apparaître sur la face avant du site.

    
posée curtismchale 21.01.2011 - 17:36

4 réponses

0

Ce n'est pas possible "hors de la boîte" ...

Les options 'orderby' par défaut sont (croissant ou décroissant)

  • nom de l'ID
  • Par défaut
  • limace
  • compter
  • term_group

Elles sont toutes détaillées dans le codex.

-

Cela dit, il y a des dames intelligentes et messieurs ici. Si quelqu'un peut le résoudre, un de ces gars peut en être sûr!

    
réponse donnée George Wiscombe 27.01.2011 - 01:25
6

Après des recherches approfondies et des tests approfondis, j'ai trouvé la réponse.

Ajoutez ce code aux fonctions de votre thème.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édit: ceci est basé sur - mais amélioré - enlace )

    
réponse donnée Biranit Goren 21.02.2012 - 13:21
2

J'ai eu du mal à trouver la réponse aux termes alphabétiques d'une taxonomie personnalisée ... Je ne recommanderais pas de modifier les fichiers WP principaux. Voici ce que j'ai ajouté à mon fichier taxonomy.php pour répertorier les descriptions de taxonomie personnalisée. , avec des liens vers les termes enfants dans l’ordre alphabétique. Modifiez selon vos besoins, j'espère que cela aidera quelqu'un là-bas.

// 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>';
    
réponse donnée Erik Rodne 31.07.2012 - 21:44
1

Je sais que c'est un peu une tricherie, mais vous pouvez toujours utiliser la commande de commande personnalisée simple brancher. C'est gratuit, et cela vous permet de trier les taxonomies en plus des types de publication.

    
réponse donnée Nate 11.09.2017 - 17:50

Lire d'autres questions sur les étiquettes