Make WordPress Core


Ignore:
Timestamp:
09/15/2022 11:39:43 AM (4 years ago)
Author:
audrasjb
Message:

Editor: Backport build_query_vars_from_query_block changes from Gutenberg repository.

This changeset backports changes from the following Gutenberg pull requests:

Props ntsekouras, bernhard-reiter.
See #56467.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/blocks/wpBlock.php

    r53268 r54175  
    438438                                'orderBy'     => 'title',
    439439                                'tagIds'      => array( 3, 11, 10 ),
     440                                'parents'     => array( 1, 2 ),
    440441                        ),
    441442                );
    … …  
    446447                        $query,
    447448                        array(
    448                                 'post_type'    => 'page',
    449                                 'order'        => 'DESC',
    450                                 'orderby'      => 'title',
    451                                 'post__not_in' => array( 1, 2 ),
    452                                 'tax_query'    => array(
     449                                'post_type'       => 'page',
     450                                'order'           => 'DESC',
     451                                'orderby'         => 'title',
     452                                'post__not_in'    => array( 1, 2 ),
     453                                'tax_query'       => array(
    453454                                        array(
    454455                                                'taxonomy'         => 'category',
    … …  
    462463                                        ),
    463464                                ),
     465                                'post_parent__in' => array( 1, 2 ),
    464466                        )
    465467                );
    … …  
    581583                                'offset'         => 12,
    582584                                'posts_per_page' => 5,
     585                        )
     586                );
     587        }
     588
     589        /**
     590         * @ticket 56467
     591         */
     592        public function test_query_loop_block_query_vars_filter() {
     593                $this->registry->register(
     594                        'core/example',
     595                        array( 'uses_context' => array( 'query' ) )
     596                );
     597
     598                $parsed_blocks = parse_blocks( '<!-- wp:example {"ok":true} -->a<!-- wp:example /-->b<!-- /wp:example -->' );
     599                $parsed_block  = $parsed_blocks[0];
     600                $context       = array(
     601                        'query' => array(
     602                                'postType' => 'page',
     603                                'orderBy'  => 'title',
     604                        ),
     605                );
     606                $block         = new WP_Block( $parsed_block, $context, $this->registry );
     607                function filterQuery( $query, $block, $page ) {
     608                        $query['post_type'] = 'book';
     609                        return $query;
     610                }
     611                add_filter( 'query_loop_block_query_vars', 'filterQuery', 10, 3 );
     612                $query = build_query_vars_from_query_block( $block, 1 );
     613                remove_filter( 'query_loop_block_query_vars', 'filterQuery' );
     614                $this->assertSame(
     615                        $query,
     616                        array(
     617                                'post_type'    => 'book',
     618                                'order'        => 'DESC',
     619                                'orderby'      => 'title',
     620                                'post__not_in' => array(),
    583621                        )
    584622                );
Note: See TracChangeset for help on using the changeset viewer.