Function and usage of get_post_type() in wordpress


Answers ( 1 )


    The get_post_type() function in WordPress is used to retrieve the post type of the current post or a given post. Here's a detailed explanation of this function:

    Function Signature:

    get_post_type( int|WP_Post|null $post = null ): string|false

    Function Description:

    get_post_type() is a versatile function in WordPress that determines the type of a given post. It's commonly used within the WordPress loop or in plugins and themes to check the type of post being processed.


    • $post (int | WP_Post | null) (Optional): This parameter can be an integer representing a Post ID, a WP_Post object, or null. If it's null, the function uses the global $post variable, referring to the current post in the WordPress loop.
      • Default value: null

    Return Values:

    • Returns string|false: The function returns the post type as a string if it successfully retrieves the post type. If the post type cannot be determined or the post does not exist, it returns false.

    Sample Usage:

    1. Getting Post Type in The Loop:

    When used within the loop, you don't need to specify the $post parameter as it defaults to the current post.

    if ( have_posts() ) {
        while ( have_posts() ) {
            $post_type = get_post_type();
            // Use the post type...
            echo 'Post Type: ' . $post_type;

    2. Getting Post Type of a Specific Post by ID:

    To get the post type of a specific post by its ID, pass the ID as an argument.

    $post_id = 123; // Example post ID
    $post_type = get_post_type( $post_id );
    if ( $post_type ) {
        echo 'Post Type of post ' . $post_id . ': ' . $post_type;
    } else {
        echo 'Post not found or invalid post ID';

    3. Using with a WP_Post Object:

    You can also pass a WP_Post object to the function.

    $post = get_post( 123 ); // Retrieves the post object for post ID 123
    $post_type = get_post_type( $post );
    if ( $post_type ) {
        echo 'Post Type: ' . $post_type;
    } else {
        echo 'Failed to retrieve post type';

    Important Notes:

    • It's essential to check if the function returns a valid string before using the post type to avoid errors.
    • This function is part of the WordPress core, so it's available in all themes and plugins without needing to include any additional files.

    By using get_post_type(), WordPress developers can dynamically alter behavior or display based on the type of the post being handled, making it a useful function for theme and plugin development.

Leave an answer