Cambiar orden de lista de taxonomía personalizada

10

Por defecto, WordPress ordena taxonomías personalizadas (como etiquetas en este caso) por orden alfabético, no por el orden en que fueron ingresadas en el cuadro de etiqueta.

¿Alguien conoce una forma de mostrar las taxonomías personalizadas en el orden en que se ingresaron en la pantalla de edición posterior?

La url en cuestión es: enlace

Los artistas de GGW (Goes Good With) están actualmente en orden alfabético y quieren que se modifique para que se ordenen de la misma forma en que se ingresaron.

Entonces, si ingresas Artist1, Artist3, Artist2 así es como debería aparecer en la interfaz del sitio.

    
pregunta curtismchale 21.01.2011 - 17:36

4 respuestas

0

Esto no es posible "fuera de la caja" ...

Las opciones predeterminadas de "ordenar" son (ascendente o descendente)

  • nombre de identificación
  • predeterminado
  • babosa
  • cuenta
  • term_group

Todos estos están detallados en el códice.

-

Dicho esto, hay algunas damas inteligentes y amp; caballeros aqui Si alguien puede resolverlo, ¡uno de estos tipos puede estar seguro!

    
respondido por el George Wiscombe 27.01.2011 - 01:25
6

Después de un poco de búsqueda y pruebas exhaustivas, encontré la respuesta.

Agregue este código a las funciones de su 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: está basado en, pero mejorado, enlace )

    
respondido por el Biranit Goren 21.02.2012 - 13:21
2

He estado luchando para encontrar la respuesta a los términos alfabéticos de una taxonomía personalizada ... No recomendaría alterar los archivos principales de WP, así que esto es lo que agregué a mi archivo taxonomy.php para enumerar las descripciones de taxonomía personalizadas , con enlaces a términos infantiles en orden alfabético. Modifíquelo para adaptarlo a sus necesidades, espero que esto ayude a alguien.

// 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>';
    
respondido por el Erik Rodne 31.07.2012 - 21:44
1

Sé que esto es una especie de trampa, pero siempre puedes usar el Orden de correos personalizada simple enchufar. Es gratis y le permite ordenar las taxonomías además de los tipos de publicación.

    
respondido por el Nate 11.09.2017 - 17:50

Lea otras preguntas en las etiquetas