WordPress.org

Make WordPress Core

Ticket #16644: 16644.3.diff

File 16644.3.diff, 1.6 KB (added by greuben, 5 years ago)
  • wp-includes/taxonomy.php

     
    28422842        $t = get_taxonomy($taxonomy); 
    28432843 
    28442844        if ( empty($termlink) ) { 
    2845                 if ( $t->query_var ) 
     2845                if( 'category' == $taxonomy ) 
     2846                        $termlink = '?cat=' . $term->term_id; 
     2847                else if ( $t->query_var ) 
    28462848                        $termlink = "?$t->query_var=$slug"; 
    28472849                else 
    28482850                        $termlink = "?taxonomy=$taxonomy&term=$slug"; 
  • wp-includes/canonical.php

     
    7878                                $redirect['query'] = remove_query_arg(array('p', 'page_id', 'attachment_id', 'post_type'), $redirect['query']); 
    7979                } 
    8080        } 
     81         
     82        if( is_category() ) { 
     83                if( isset( $_GET['category_name'] ) ) { 
     84                        $categories = explode( ',', $_GET['category_name'] ); 
     85                        $categories = "'" . implode( "','", array_map( 'sanitize_title_for_query', $categories ) ) . "'"; 
     86                        $category_ids = $wpdb->get_col( "SELECT term_id FROM $wpdb->term_taxonomy INNER JOIN $wpdb->terms USING(term_id) WHERE taxonomy='category' AND slug IN($categories)" ); 
     87                        if( $category_ids ) { 
     88                                $redirect_url = home_url( '/' ); 
     89                                $redirect_url = add_query_arg( array( 'cat' => implode( ',', $category_ids ) ), $redirect_url ); 
     90                                $redirect['query'] = remove_query_arg( array( 'cat', 'category_name', 'category' ), $redirect['query'] ); 
     91                        } 
     92                } 
     93        } 
    8194 
    8295        // These tests give us a WP-generated permalink 
    8396        if ( is_404() ) {