Mehrere Tags in Permalinks ausgeben

Ich habe %tag% für Permalinks in WordPress konfiguriert. Hier ist, wie man das erste Tag in Permalinks verwenden . Aber während ich mehrere Tags in einem Post poste, stehe ich vor einer Art Problem.
Angenommen, ich habe drei Tags für einen Beitrag geschrieben, sie sind: Backlinks, All About SEO, Web Promotion
Also hier möchte ich den ersten Tag-Namen nur in Permalinks verwenden, aber das Problem ist, dass alle Tags nach Charakter in einem Beitrag sortiert sind, also leider permalink es www.example.com/All About SEO/page/ obwohl ich will Verwenden Sie das erste tag in Permalinks. In diesem Fall sollte der gewünschte Permalink wie www.example.com/Backlinks/page/ aussehen: www.example.com/Backlinks/page/
Also, wie man den ersten Tag-Namen für die Permalinks verwendet, bitte helfen Sie 🙂

Solutions Collecting From Web of "Mehrere Tags in Permalinks ausgeben"

Es gibt eine Spalte in der term_relationships Tabelle für term_order die impliziert, dass man die Reihenfolge der Terme festlegen könnte. Das heißt, es sieht so aus, als ob es nicht wirklich funktioniert – der core verwendet es in keiner Weise.

Ein bisschen herum stochern in wp_set_object_terms , die function, die verwendet wird, um Begriffe zu Objekten (Post-Typen, Benutzer) zuzuweisen, enthüllte dieses kleine Juwel:

 < ?php $t = get_taxonomy($taxonomy); if ( ! $append && isset($t->sort) && $t->sort ) { $values = array(); $term_order = 0; $final_tt_ids = wp_get_object_terms($object_id, $taxonomy, array('fields' => 'tt_ids')); foreach ( $tt_ids as $tt_id ) if ( in_array($tt_id, $final_tt_ids) ) $values[] = $wpdb->prepare( "(%d, %d, %d)", $object_id, $tt_id, ++$term_order); if ( $values ) if ( false === $wpdb->query( "INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id, term_order) VALUES " . join( ',', $values ) . " ON DUPLICATE KEY UPDATE term_order = VALUES(term_order)" ) ) return new WP_Error( 'db_insert_error', __( 'Could not insert term relationship into the database' ), $wpdb->last_error ); } 

Es scheint so, als könnte man das sort für Taxonomien auf true setzen und WP wird die Dinge für Sie sortieren. Das sort scheint undokumentiert zu sein, aber ein bisschen Testcode zeigt, dass es tatsächlich funktioniert.

 < ?php add_action('init', 'wpse72703_modify_tags', 100); function wpse72703_modify_tags() { global $wp_taxonomies; $wp_taxonomies['post_tag']->sort = true; } 

Das einzige, was Sie in den Using-Tags in Permalinks anders machen müssen, ist, dies zu ändern:

 $tags = get_the_tags( $post->ID ); 

zu…

 $terms = wp_get_object_terms($post->ID, 'post_tag', array( 'orderby' => 'term_order', )); 

Dadurch werden die zurückgegebenen Terme gezwungen, die Reihenfolge einzuhalten, in der Sie sie hinzugefügt haben.