WordPress.org

Make WordPress Core

Ticket #10786: 10786.diff

File 10786.diff, 1.7 KB (added by dd32, 5 years ago)
  • wp-includes/link-template.php

     
    150151                       $author, 
    151152                       $post->post_name, 
    152153               ); 
     154 
     155               foreach ( get_object_taxonomies( $post->post_type ) as $tax ) { 
     156                       $taxonomy = get_taxonomy($tax); 
     157                       if ( empty($taxonomy->rewrite) ) 
     158                               continue; 
     159 
     160                       if ( strpos($permalink, "%{$taxonomy->rewrite['slug']}%") !== false ) { 
     161                               $rewritecode[] = "%{$taxonomy->rewrite['slug']}%"; 
     162                               $terms = wp_get_object_terms( $post->ID, $taxonomy->name ); 
     163                               if ( !is_wp_error($terms) && !empty($terms) ) { 
     164                                       usort($terms, '_usort_terms_by_ID'); 
     165                                       $rewritereplace[] = $terms[0]->slug; 
     166                               } else { 
     167                                       $default_term = get_term( get_option( "default_{$taxonomy->name}" ), $taxonomy->name ); 
     168                                       $rewritereplace[] = is_wp_error( $default_term ) ? '' : $default_term->slug; 
     169                               } 
     170                       } 
     171               } 
     172 
    153173               $permalink = get_option('home') . str_replace($rewritecode, $rewritereplace, $permalink); 
    154174               $permalink = user_trailingslashit($permalink, 'single'); 
    155175               return apply_filters('post_link', $permalink, $post, $leavename);