WordPress.org

Make WordPress Core

Ticket #26627: 26627.2.diff

File 26627.2.diff, 2.5 KB (added by wonderboymusic, 4 years ago)
  • src/wp-includes/query.php

     
    32643264
    32653265                if ( $this->is_category || $this->is_tag || $this->is_tax ) {
    32663266                        if ( $this->is_category ) {
    3267                                 $term = get_term( $this->get( 'cat' ), 'category' );
     3267                                if ( $this->get( 'cat' ) ) {
     3268                                        $term = get_term( $this->get( 'cat' ), 'category' );
     3269                                } elseif ( $this->get( 'category_name' ) ) {
     3270                                        $term = get_term_by( 'slug', $this->get( 'category_name' ), 'category' );
     3271                                }
    32683272                        } elseif ( $this->is_tag ) {
    32693273                                $term = get_term( $this->get( 'tag_id' ), 'post_tag' );
    32703274                        } else {
  • tests/phpunit/tests/query/taxQuery.php

     
    1717        protected $post_id;
    1818
    1919        protected $cat;
     20        protected $uncat;
    2021        protected $tag;
    2122        protected $tax;
    2223
     
    4849                _make_cat_compat( $this->cat );
    4950                $this->tag = get_term( $this->tag_id, 'post_tag' );
    5051
     52                $this->uncat = get_term_by( 'slug', 'uncategorized', 'category' );
     53                _make_cat_compat( $this->uncat );
     54
    5155                add_action( 'pre_get_posts', array( $this, 'pre_get_posts_tax_category_tax_query' ) );
    5256        }
    5357
     
    106110                $this->assertEquals( get_queried_object(), $this->cat );
    107111        }
    108112
     113        function test_cat_uncat_action_tax() {
     114                // category with tax added
     115                add_action( 'pre_get_posts', array( $this, '_cat_uncat_action_tax' ), 11 );
     116
     117                $this->go_to( home_url( "/category/uncategorized/" ) );
     118                $this->assertQueryTrue( 'is_category', 'is_archive' );
     119                $this->assertNotEmpty( get_query_var( 'cat' ) );
     120                $this->assertNotEmpty( get_query_var( 'tax_query' ) );
     121                $this->assertNotEmpty( get_query_var( 'taxonomy' ) );
     122                $this->assertNotEmpty( get_query_var( 'term_id' ) );
     123                $this->assertEquals( get_queried_object(), $this->uncat );
     124
     125                remove_action( 'pre_get_posts', array( $this, '_cat_uncat_action_tax' ), 11 );
     126        }
     127
     128        function _cat_uncat_action_tax( &$query ) {
     129                $this->assertTrue( $query->is_category() );
     130                $this->assertTrue( $query->is_archive() );
     131                $this->assertNotEmpty( $query->get( 'category_name' ) );
     132                $this->assertNotEmpty( $query->get( 'tax_query' ) );
     133                $this->assertEquals( $query->get_queried_object(), $this->uncat );
     134        }
     135
    109136        function test_tax_query_tag_action_tax() {
    110137                // tax + tag with tax added
    111138                $this->go_to( home_url( "/testtax/tax-slug2/?tag_id=$this->tag_id" ) );