The get_post_galleries WordPress PHP filter allows you to modify the list of all found galleries in a given post.
Usage
add_filter( 'get_post_galleries', 'your_custom_function', 10, 2 ); function your_custom_function( $galleries, $post ) { // your custom code here return $galleries; }
Parameters
$galleries
(array) – Associative array of all found post galleries.$post
(WP_Post) – Post object.
More information
See WordPress Developer Resources: get_post_galleries
Examples
Remove empty galleries
Remove galleries with no images from the list of galleries.
add_filter( 'get_post_galleries', 'remove_empty_galleries', 10, 2 ); function remove_empty_galleries( $galleries, $post ) { foreach ( $galleries as $key => $gallery ) { if ( empty( $gallery['src'] ) ) { unset( $galleries[ $key ] ); } } return $galleries; }
Limit the number of galleries
Limit the number of displayed galleries to a specific number.
add_filter( 'get_post_galleries', 'limit_galleries', 10, 2 ); function limit_galleries( $galleries, $post ) { $max_galleries = 3; return array_slice( $galleries, 0, $max_galleries, true ); }
Add a custom attribute to gallery images
Add a custom attribute to each image in the galleries.
add_filter( 'get_post_galleries', 'add_custom_attribute', 10, 2 ); function add_custom_attribute( $galleries, $post ) { foreach ( $galleries as $key => $gallery ) { foreach ( $gallery['src'] as $index => $src ) { $galleries[ $key ]['src'][ $index ] = $src . ' data-custom-attribute="value"'; } } return $galleries; }
Change the order of galleries
Reverse the order of galleries.
add_filter( 'get_post_galleries', 'reverse_galleries_order', 10, 2 ); function reverse_galleries_order( $galleries, $post ) { return array_reverse( $galleries, true ); }
Modify galleries based on post category
Customize galleries based on the post’s category.
add_filter( 'get_post_galleries', 'modify_galleries_by_category', 10, 2 ); function modify_galleries_by_category( $galleries, $post ) { if ( has_category( 'special', $post ) ) { // Perform custom modifications for 'special' category // ... } return $galleries; }