Функция get_post_galleries()
в WordPress позволяет извлекать галереи из содержимого записи, используя шорткоды gallery
. Это полезный инструмент для разработчиков и администраторов сайтов, который помогает управлять визуальным контентом.
get_post_galleries( int|WP_Post $post, bool $html = true ): array
Параметры
- $post (обязательный): ID записи (int) или объект записи (WP_Post), из которой нужно получить галереи.
- $html (опциональный): логическое значение, указывающее, нужно ли возвращать HTML-код или массив данных. По умолчанию установлено значение
true
.
Возвращаемое значение
Функция возвращает массив, содержащий данные о галереях, включая идентификаторы вложений и ссылки на изображения. Если параметр $html
установлен в true
, возвращается готовый HTML-код галерей.
Важные моменты
- Функция работает только с шорткодами галерей старого формата и не поддерживает галереи блочного редактора (Гутенберг). Начиная с версии WordPress 5.9, поддержка галерей блочного редактора также добавлена.
- Функция базируется на других утилитах, таких как
has_shortcode()
,do_shortcode_tag()
иget_shortcode_regex()
.
Пример 1: Получение всех галерей записи с ID 1234
В этом примере мы получим все галереи из записи с ID 1234, предполагая, что в содержимом присутствуют две галереи.
$galleries = get_post_galleries(1234, false);
/* $galleries будет равно
Array
(
[0] => Array
(
[ids] => 1010,1009,1008
[src] => Array
(
[0] => http://example.com/wp-content/uploads/2024/01/image1-80x80.png
[1] => http://example.com/wp-content/uploads/2024/01/image2-80x80.png
[2] => http://example.com/wp-content/uploads/2024/01/image3-80x80.png
)
)
[1] => Array
(
[ids] => 1007,1006,1005
[src] => Array
(
[0] => http://example.com/wp-content/uploads/2024/01/image4-80x80.jpg
[1] => http://example.com/wp-content/uploads/2024/01/image5-80x80.jpg
[2] => http://example.com/wp-content/uploads/2024/01/image6-80x80.jpg
)
)
)
*/
Пример 2: Получение HTML-кода всех галерей записи с ID 4567
В этом примере мы получим HTML-код галерей из записи с ID 4567.
$galleries_html = get_post_galleries(4567, true);
/* $galleries_html будет равно
Array
(
[0] => <div id='gallery-1' class='gallery galleryid-4567 gallery-columns-3 gallery-size-thumbnail'>
<figure class='gallery-item'>
<div class='gallery-icon landscape'>
<a href='/gallery/image1'><img width="80" height="80" src="/wp-content/uploads/2024/01/image1-80x80.png" class="attachment-thumbnail size-thumbnail" alt="image1" /></a>
</div></figure>
<figure class='gallery-item'>
<div class='gallery-icon landscape'>
<a href='/gallery/image2'><img width="80" height="80" src="/wp-content/uploads/2024/01/image2-80x80.png" class="attachment-thumbnail size-thumbnail" alt="image2" /></a>
</div></figure>
<figure class='gallery-item'>
<div class='gallery-icon landscape'>
<a href='/gallery/image3'><img width="80" height="80" src="/wp-content/uploads/2024/01/image3-80x80.png" class="attachment-thumbnail size-thumbnail" alt="image3" /></a>
</div></figure>
</div>
[1] => <div id='gallery-2' class='gallery galleryid-4567 gallery-columns-3 gallery-size-thumbnail'>
<figure class='gallery-item'>
<div class='gallery-icon landscape'>
<a href='/gallery/image4'><img width="80" height="80" src="/wp-content/uploads/2024/01/image4-80x80.jpg" class="attachment-thumbnail size-thumbnail" alt="image4" /></a>
</div></figure>
<figure class='gallery-item'>
<div class='gallery-icon landscape'>
<a href='/gallery/image5'><img width="80" height="80" src="/wp-content/uploads/2024/01/image5-80x80.jpg" class="attachment-thumbnail size-thumbnail" alt="image5" /></a>
</div></figure>
<figure class='gallery-item'>
<div class='gallery-icon landscape'>
<a href='/gallery/image6'><img width="80" height="80" src="/wp-content/uploads/2024/01/image6-80x80.jpg" class="attachment-thumbnail size-thumbnail" alt="image6" /></a>
</div></figure>
</div>
)
*/
Заключение
Функция get_post_galleries()
является мощным инструментом для работы с галереями изображений в WordPress. Она позволяет легко извлекать галереи из содержимого записей и представлять их в нужном формате, будь то массив данных или готовый HTML-код. С учетом поддержки блочного редактора с версии 5.9, возможности этой функции стали еще шире.