Make WordPress Core

Changeset 62041


Ignore:
Timestamp:
03/17/2026 09:08:46 PM (2 months ago)
Author:
westonruter
Message:

Docs: Indicate that get_posts() can take a query string in addition to an array of query vars.

A string is supported by virtue of wp_parse_args() being used on the supplied arguments. While a string is not currently passed to get_posts() in core, a significant number of plugins are doing so. So in addition to documenting actual ecosystem usage, this also adds a test to ensure that supplying a query string continues to be supported in the future.

Developed in https://github.com/WordPress/wordpress-develop/pull/11179

Follow-up to r11528.

Props rodrigosprimo, westonruter, shailu25, mukesh27.
See #64224, #10047.
Fixes #64813.

Location:
trunk
Files:
2 edited

Legend:

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

    r61833 r62041  
    26002600 * @see WP_Query::parse_query()
    26012601 *
    2602  * @param array $args {
    2603  *     Optional. Arguments to retrieve posts. See WP_Query::parse_query() for all available arguments.
     2602 * @param array|string $args {
     2603 *     Optional. Array or query string of arguments to retrieve posts.
     2604 *     See WP_Query::parse_query() for all available arguments.
    26042605 *
    26052606 *     @type int        $numberposts      Total number of posts to retrieve. Is an alias of `$posts_per_page`
  • trunk/tests/phpunit/tests/post/getPosts.php

    r46586 r62041  
    164164        $this->assertSame( array( $p3 ), $found );
    165165    }
     166
     167    /**
     168     * Verifies that get_posts() accepts a query string for the `$args` parameter.
     169     *
     170     * @ticket 64813
     171     */
     172    public function test_should_accept_query_string_args(): void {
     173        self::factory()->post->create();
     174        $second_post_id = self::factory()->post->create();
     175        $found_post_ids = get_posts( 'numberposts=1&fields=ids' );
     176
     177        $this->assertSame( array( $second_post_id ), $found_post_ids );
     178    }
    166179}
Note: See TracChangeset for help on using the changeset viewer.