Make WordPress Core

Ticket #10786: 10786.diff

File 10786.diff, 1.7 KB (added by dd32, 16 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);