Function and usage of get_posts() in wordpress


Answers ( 1 )


    The get_posts() function in WordPress is a versatile and useful tool for retrieving an array of the latest posts or posts matching specific criteria. Here's a detailed explanation of its function and usage:


    • Purpose: Retrieves an array of the latest posts, or posts matching the given criteria.


    • Key Point: This function is designed for simplicity and returns an array of posts based on the arguments provided.
    • Compatibility with WP_Query: For detailed options, it is advised to refer to the WP_Query documentation in the WordPress Developer Handbook.
    • Limitations:
      • $ignore_sticky_posts: This argument is set to true and is ignored by get_posts().
      • $no_found_rows: Also set to true and ignored.
    • Defaults: The function has its own set of default values which are applied if no arguments are specified.
    • Relation with WP_Query: It's important to note that get_posts() is closely tied to WP_Query, and many of its parameters are derived from it.


    • $args (array, optional): Arguments to retrieve posts. The structure is similar to WP_Query::parse_query(). The key parameters include:
      • numberposts (int): Total number of posts to retrieve. It acts as an alias of $posts_per_page in WP_Query. Accepts -1 for retrieving all posts. The default is 5.
      • category (int|string): Either a single category ID or a comma-separated list of IDs. Functions as an alias of $cat in WP_Query. The default is 0.
      • include (int[]): An array of post IDs to include. Sticky posts are included. It mirrors $post__in in WP_Query. The default is an empty array.
      • exclude (int[]): An array of post IDs to exclude from the query. The default is an empty array.
      • suppress_filters (bool): Determines whether to suppress filters. The default is true.
    • Default: null if no arguments are provided.


    • Type: WP_Post[]|int[].
    • Description: Returns an array of post objects or post IDs, depending on the arguments provided.

    Sample Usage:

    To use get_posts(), you would typically define an array of arguments based on your specific requirements and then pass this array to the function. For example:

    $args = array(
        'numberposts' => 10,
        'category'    => 5,
        'exclude'     => array(1,2),
    $posts = get_posts( $args );
    foreach ( $posts as $post ) {
        // Process each post...

    In this example, get_posts() retrieves the latest 10 posts from category 5, excluding posts with IDs 1 and 2. Each post is then processed in a loop.

    This function is highly flexible and can be tailored to fit various scenarios where you need to fetch posts from the WordPress database.

Leave an answer