WordPress.org

Make WordPress Core

Ticket #10663: 10663.2.diff

File 10663.2.diff, 2.6 KB (added by wonderboymusic, 5 years ago)
  • src/wp-includes/query.php

     
    39033903
    39043904                $category = (array) $category;
    39053905
    3906                 if ( in_array( $cat_obj->term_id, $category ) )
     3906                if ( in_array( $cat_obj->term_id, $category, true ) )
    39073907                        return true;
    39083908                elseif ( in_array( $cat_obj->name, $category ) )
    39093909                        return true;
     
    39353935
    39363936                $tag = (array) $tag;
    39373937
    3938                 if ( in_array( $tag_obj->term_id, $tag ) )
     3938                if ( in_array( $tag_obj->term_id, $tag, true ) )
    39393939                        return true;
    39403940                elseif ( in_array( $tag_obj->name, $tag ) )
    39413941                        return true;
  • tests/phpunit/tests/query/conditionals.php

     
    722722                $this->assertTrue( is_attachment( $post->post_title ) );
    723723                $this->assertTrue( is_attachment( $post->post_name ) );
    724724        }
     725
     726        /**
     727         * @ticket 10663
     728         */
     729        function test_is_category() {
     730                $post_id = $this->factory->post->create();
     731                $cat_id = $this->factory->category->create( array( 'name' => 'News' ) );
     732                wp_set_post_categories( $post_id, $cat_id );
     733
     734                $this->go_to( "/?cat=$cat_id" );
     735
     736                $this->assertQueryTrue( 'is_category', 'is_archive'  );
     737                $this->assertTrue( is_numeric( $cat_id ) );
     738                $this->assertTrue( is_category( $cat_id ) );
     739                $this->assertTrue( is_numeric( "$cat_id") );
     740                $this->assertFalse( is_category( "$cat_id" ) );
     741
     742                $this->assertFalse( is_numeric( "{$cat_id}eth release" ) );
     743                $this->assertFalse( is_category( "{$cat_id}eth release" ) );
     744                $this->assertFalse( is_category( "{$cat_id}eth" ) );
     745                $this->assertFalse( is_category( "{$cat_id} of a kind" ) );
     746        }
     747
     748        /**
     749         * @ticket 10663
     750         */
     751        function test_is_tag() {
     752                $post_id = $this->factory->post->create();
     753                $tag_id = $this->factory->term->create( array( 'name' => 'News', 'taxonomy' => 'post_tag' ) );
     754                wp_set_post_tags( $post_id, $tag_id );
     755
     756                $this->go_to( "/?tag_id=$tag_id" );
     757
     758                $this->assertQueryTrue( 'is_tag', 'is_archive'  );
     759                $this->assertTrue( is_numeric( $tag_id ) );
     760                $this->assertTrue( is_tag( $tag_id ) );
     761                $this->assertTrue( is_numeric( "$tag_id" ) );
     762                $this->assertFalse( is_tag( "$tag_id" ) );
     763
     764                $this->assertFalse( is_numeric( "{$tag_id}eth release" ) );
     765                $this->assertFalse( is_tag( "{$tag_id}eth release" ) );
     766                $this->assertFalse( is_tag( "{$tag_id}eth" ) );
     767                $this->assertFalse( is_tag( "{$tag_id} of a kind" ) );
     768        }
    725769}