Make WordPress Core

Changeset 54175

Timestamp:
09/15/2022 11:39:43 AM (23 months 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.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/blocks.php

    r54155 r54175  
    11901190 *
    11911191 * @since 5.8.0
     1192
    11921193 *
    11931194 * @param WP_Block $block Block instance.
     
    12901291            $query['s'] = $block->context['query']['search'];
    12911292        }
    1292     }
    1293     return $query;
     1293        if ( ! empty( $block->context['query']['parents'] ) && is_post_type_hierarchical( $query['post_type'] ) ) {
     1294            $query['post_parent__in'] = array_filter( array_map( 'intval', $block->context['query']['parents'] ) );
     1295        }
     1296    }
     1297
     1298    /**
     1299     * Filters the arguments which will be passed to `WP_Query` for the Query Loop Block.
     1300     *
     1301     * Anything to this filter should be compatible with the `WP_Query` API to form
     1302     * the query context which will be passed down to the Query Loop Block's children.
     1303     * This can help, for example, to include additional settings or meta queries not
     1304     * directly supported by the core Query Loop Block, and extend its capabilities.
     1305     *
     1306     * Please note that this will only influence the query that will be rendered on the
     1307     * front-end. The editor preview is not affected by this filter. Also, worth noting
     1308     * that the editor preview uses the REST API, so, ideally, one should aim to provide
     1309     * attributes which are also compatible with the REST API, in order to be able to
     1310     * implement identical queries on both sides.
     1311     *
     1312     * @since 6.1.0
     1313     *
     1314     * @param array    $query Array containing parameters for `WP_Query` as parsed by the block context.
     1315     * @param WP_Block $block Block instance.
     1316     * @param int      $page  Current query's page.
     1317     */
     1318    return apply_filters( 'query_loop_block_query_vars', $query, $block, $page );
    12941319}
    12951320
  • trunk/tests/phpunit/tests/blocks/wpBlock.php

    r53268 r54175  
    438438                'orderBy'     => 'title',
    439439                'tagIds'      => array( 3, 11, 10 ),
     440
    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
    464466            )
    465467        );
     
    581583                'offset'         => 12,
    582584                'posts_per_page' => 5,
     585
     586
     587
     588
     589
     590
     591
     592
     593
     594
     595
     596
     597
     598
     599
     600
     601
     602
     603
     604
     605
     606
     607
     608
     609
     610
     611
     612
     613
     614
     615
     616
     617
     618
     619
     620
    583621            )
    584622        );
Note: See TracChangeset for help on using the changeset viewer.