Using WordPress ‘get_post_galleries()’ PHP function

The get_post_galleries() WordPress PHP function retrieves galleries from the passed post’s content.

Usage

get_post_galleries( $post, $html );

Example:

$galleries = get_post_galleries( 42, true );

Parameters

  • $post (int|WP_Post): Required. Post ID or object.
  • $html (bool): Optional. Whether to return HTML or data in the array. Default: true.

More information

See WordPress Developer Resources: get_post_galleries()

As of WordPress 5.9, this function does support block editor galleries.

Examples

Retrieve galleries from a post

Retrieve all galleries from a specific post and display their HTML.

$post_id = 42;
$galleries = get_post_galleries( $post_id, true );
foreach ( $galleries as $gallery ) {
    echo $gallery;
}

Retrieve gallery data from a post

Retrieve all galleries from a specific post and access their data (IDs, URLs, etc.).

$post_id = 42;
$galleries = get_post_galleries( $post_id, false );
foreach ( $galleries as $gallery ) {
    print_r( $gallery );
}

Check if a post has a gallery

Check if a post has at least one gallery.

$post_id = 42;
$has_gallery = ( count( get_post_galleries( $post_id, false ) ) > 0 );
if ( $has_gallery ) {
    echo "This post has a gallery.";
} else {
    echo "This post does not have a gallery.";
}

Get the first gallery from a post

Retrieve the first gallery from a specific post and display its HTML.

$post_id = 42;
$galleries = get_post_galleries( $post_id, true );
if ( ! empty( $galleries ) ) {
    echo reset( $galleries );
}

Get the number of images in a post’s galleries

Retrieve all galleries from a specific post and count the total number of images.

$post_id = 42;
$image_count = 0;
$galleries = get_post_galleries( $post_id, false );
foreach ( $galleries as $gallery ) {
    $image_count += count( $gallery['ids'] );
}
echo "Total images in galleries: " . $image_count;