[wp-trac] [WordPress Trac] #62014: Editor: Add a 'format' parameter to query to enable filtering post formats in the Query Loop block

WordPress Trac noreply at wordpress.org
Wed Sep 11 06:10:10 UTC 2024


#62014: Editor: Add a 'format' parameter to query to enable filtering post formats
in the Query Loop block
-------------------------+---------------------
 Reporter:  poena        |       Owner:  (none)
     Type:  enhancement  |      Status:  new
 Priority:  normal       |   Milestone:  6.7
Component:  Editor       |     Version:
 Severity:  normal       |  Resolution:
 Keywords:  has-patch    |     Focuses:
-------------------------+---------------------
Description changed by poena:

Old description:

> I am opening this ticket tentatively to add the PHP changes from this
> Gutenberg PR:
> [https://github.com/WordPress/gutenberg/pull/64167 Query loop / Post
> template: Enable post format filter]
>
> At the time of opening this issue, this linked PR has not yet been
> approved, and this ticket should not be committed.
> I expect that there will be some additional changes to the PR.
>
> I could use help with adding a better summary (ticket title) and clearer
> description, but I will try my best.
>

> The Gutenberg PR linked above adds a new filter to the Query Loop block,
> that the user can use to display posts (or other post types) that have
> post formats assigned.
>
> The PR adds a new parameter called 'format' to the class
> {{{WP_REST_Posts_Controller}}}. Changes are made to these class methods:
> get_item and get_collection_params.
>
> 'Format' is also added to the function
> {{{build_query_vars_from_query_block}}}, which is used to display the
> correct posts on the front.
>

> ----
>
> == Testing instructions
>
> How to test the post formats filter without the rest of the Gutenberg
> changes.
>
> First, please enable post formats on the active theme. Example:
> {{{
> function twentytwentyfour_post_formats() {
>         add_theme_support( 'post-formats', array( 'aside', 'gallery',
> 'link', 'image', 'quote', 'status', 'video', 'audio', 'chat' ) );
> }
> add_action( 'after_setup_theme', 'twentytwentyfour_post_formats' );
> }}}
>
> On your WordPress test install, create a few posts with and without
> formats assigned.
>
> In the Site Editor or block editor, insert a query loop with a format
> filter.
> In this example, I have used the gallery post format. I have added
> {{{"format":["gallery"]}}} inside {{{query}}}:
>
> {{{
> <!-- wp:query
> {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"format":["gallery"]}}
> -->
> <div class="wp-block-query">
>     <!-- wp:post-template -->
>     <!-- wp:post-title /-->
>     <!-- /wp:post-template -->
> </div>
> <!-- /wp:query -->
> }}}
>

> In the editor, the query loop should only display posts with the gallery
> post format.
>
> Next, change the format to standard:
>
> {{{
> <!-- wp:query
> {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"format":["standard"]}}
> -->
> <div class="wp-block-query">
>     <!-- wp:post-template -->
>     <!-- wp:post-title /-->
>     <!-- /wp:post-template -->
> </div>
> <!-- /wp:query -->
> }}}
>
> In the editor, the query loop should only display posts that have no post
> format assigned.
>
> --
>
> On the front, the query loop does not show any results: I am still
> figuring out if this is because part of the block changes are missing or
> if there are problems with {{{build_query_vars_from_query_block}}} in
> this PR.

New description:

 I am opening this ticket tentatively to add the PHP changes from this
 Gutenberg PR:
 [https://github.com/WordPress/gutenberg/pull/64167 Query loop / Post
 template: Enable post format filter]

 At the time of opening this issue, this linked PR has not yet been
 approved, and this ticket should not be committed.
 I expect that there will be some additional changes to the PR.

 I could use help with adding a better summary (ticket title) and clearer
 description, but I will try my best.


 The Gutenberg PR linked above adds a new filter to the Query Loop block,
 that the user can use to display posts (or other post types) that have
 post formats assigned.

 The PR adds a new parameter called 'format' to the class
 {{{WP_REST_Posts_Controller}}}. Changes are made to these class methods:
 get_item and get_collection_params.

 'Format' is also added to the function
 {{{build_query_vars_from_query_block}}}, which is used to display the
 correct posts on the front.


 ----

 == Testing instructions

 How to test the post formats filter without the rest of the Gutenberg
 changes.

 First, please enable post formats on the active theme. Example:
 {{{
 function twentytwentyfour_post_formats() {
         add_theme_support( 'post-formats', array( 'aside', 'gallery',
 'link', 'image', 'quote', 'status', 'video', 'audio', 'chat' ) );
 }
 add_action( 'after_setup_theme', 'twentytwentyfour_post_formats' );
 }}}

 On your WordPress test install, create a few posts with and without
 formats assigned.

 In the Site Editor or block editor, insert a query loop with a format
 filter.
 In this example, I have used the gallery post format. I have added
 {{{"format":["gallery"]}}} inside {{{query}}}:

 {{{
 <!-- wp:query
 {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"format":["gallery"]}}
 -->
 <div class="wp-block-query">
     <!-- wp:post-template -->
     <!-- wp:post-title /-->
     <!-- /wp:post-template -->
 </div>
 <!-- /wp:query -->
 }}}


 In the editor and front, the query loop should only display posts with the
 gallery post format.

 Next, change the format to standard:

 {{{
 <!-- wp:query
 {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"format":["standard"]}}
 -->
 <div class="wp-block-query">
     <!-- wp:post-template -->
     <!-- wp:post-title /-->
     <!-- /wp:post-template -->
 </div>
 <!-- /wp:query -->
 }}}

 In the editor and front, the query loop should only display posts that
 have no post format assigned.

--

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/62014#comment:4>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list