it-swarm.com.de

Reihenfolge der benutzerdefinierten Taxonomieliste ändern

Standardmäßig ordnet WordPress benutzerdefinierte Taxonomien (in diesem Fall als Tags) in alphabetischer Reihenfolge an, nicht in der Reihenfolge, in der sie in das Tag-Feld eingegeben wurden.

Kennt jemand eine Möglichkeit, die benutzerdefinierten Taxonomien in der Reihenfolge anzuzeigen, in der sie im Bildschirm für die Nachbearbeitung eingegeben wurden?

Die fragliche URL lautet: http://granadatheater.com/

Die GGW-Künstler (Goes Good With) sind derzeit in alphabetischer Reihenfolge und möchten, dass die Reihenfolge so geändert wird, wie sie eingegeben wurden.

Wenn Sie also Artist1, Artist3, Artist2 eingeben, sollte dies im Frontend der Site angezeigt werden.

11
curtismchale

Das ist nicht "out of the box" möglich ...

Die Standardoptionen für 'orderby' sind (aufsteigend oder absteigend).

  • ID Name
  • Default
  • schnecke
  • anzahl
  • term_group

Diese sind alle im Kodex aufgeführt.

-

Das heißt, es gibt einige kluge Damen und Herren hier. Wenn jemand es lösen kann, kann einer dieser Jungs sicher sein!

0
George Wiscombe

Nach einigem Suchen und ausgiebigen Tests fand ich die Antwort.

Füge diesen Code in die functions.php deines Themas ein:

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');

(Gutschrift: dies basiert auf - aber verbessert - http://wordpress.kdari.net/2011/07/listing-tags-in-custom-order.html )

7
Biranit Goren

Ich weiß, dass dies eine Art von Betrug ist, aber Sie können immer das Plugin Simple Custom Post Order verwenden. Es ist kostenlos und ermöglicht Ihnen, Taxonomien zusätzlich zu Beitragstypen zu sortieren.

2
Nate

Ich habe Probleme damit, die Antwort auf alphabetische untergeordnete Begriffe einer benutzerdefinierten Taxonomie zu finden ... Ich würde nicht empfehlen, die WP Kerndateien zu ändern Benutzerdefinierte Taxonomiebeschreibungen mit Links zu untergeordneten Begriffen in alphabetischer Reihenfolge. Passen Sie die Einstellungen an Ihre Bedürfnisse an. Ich hoffe, dies hilft jemandem da draußen.

// 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>';
2
Erik Rodne