WordPress.org

Make WordPress Core

Ticket #39211: 39211.diff

File 39211.diff, 1.8 KB (added by dlh, 3 years ago)
  • src/wp-includes/post-template.php

     
    16311631 * @return bool True on success, false on failure.
    16321632 */
    16331633function is_page_template( $template = '' ) {
     1634        if ( ! is_singular() ) {
     1635                return false;
     1636        }
     1637
    16341638        $page_template = get_page_template_slug( get_queried_object_id() );
    16351639
    16361640        if ( empty( $template ) )
  • tests/phpunit/tests/query/conditionals.php

     
    10741074        }
    10751075
    10761076        /**
     1077         * @ticket 39211
     1078         */
     1079        function test_is_page_template_not_singular() {
     1080                global $wpdb;
     1081
     1082                // We need an non-post that shares an ID with a post assigned a template.
     1083                $user_id = self::factory()->user->create();
     1084                if ( ! get_post( $user_id ) ) {
     1085                        $post_id = self::factory()->post->create( array( 'post_type' => 'post' ) );
     1086                        $wpdb->update( $wpdb->posts, array( 'ID' => $user_id ), array( 'ID' => $post_id ), array( '%d' ) );
     1087                }
     1088
     1089                update_post_meta( $user_id, '_wp_page_template', 'example.php' );
     1090
     1091                // Verify that the non-post with our ID does not report having a template.
     1092                $this->go_to( get_post_permalink( $user_id ) );
     1093                $this->assertTrue( is_page_template( 'example.php' ) );
     1094                $this->go_to( get_author_posts_url( $user_id ) );
     1095                $this->assertInstanceOf( 'WP_User', get_queried_object() ); // and not something else that would return false, like a 404.
     1096                $this->assertFalse( is_page_template( 'example.php' ) );
     1097        }
     1098
     1099        /**
    10771100         * @ticket 35902
    10781101         */
    10791102        public function test_is_attachment_should_not_match_numeric_id_to_post_title_beginning_with_id() {