get_post_format( int|WP_Post|null $post = null )

Retrieve the format slug for a post

Parameters Parameters


(int|WP_Post|null) (Optional) Post ID or post object. Defaults to the current post in the loop.

Default value: null

Top ↑

Return Return

(string|false) The format if successful. False otherwise.

Top ↑

More Information More Information

This will usually be called in the the loop, but can be used anywhere if a post ID is provided.

The set of currently defined formats are:

  • aside
  • chat
  • gallery
  • link
  • image
  • quote
  • status
  • video
  • audio

Note also that the default format (i.e., a normal post) returns false, but this is also referred in some places as the ‘standard’ format. In some cases, developers may wish to do something like the following to maintain consistency:

$format = get_post_format() ? : 'standard';



Top ↑

Source Source

File: wp-includes/post-formats.php

function get_post_format( $post = null ) {
	$post = get_post( $post );

	if ( ! $post ) {
		return false;

	if ( ! post_type_supports( $post->post_type, 'post-formats' ) ) {
		return false;

	$_format = get_the_terms( $post->ID, 'post_format' );

	if ( empty( $_format ) ) {
		return false;

	$format = reset( $_format );

	return str_replace( 'post-format-', '', $format->slug );

Top ↑

Changelog Changelog

Version Description
3.1.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Codex

    Usage in Templates

     * Pull in a different sub-template, depending on the Post Format.
     * Make sure that there is a default format.php file to fall back to as a default.
     * Name templates format-link.php, format-aside.php, etc.
     * You should use this in the loop.
    get_template_part( 'format', get_post_format() );

You must log in before being able to contribute a note or feedback.