get_post_gallery()


WordPressのget_post_gallery()関数は、特定の投稿に含まれるギャラリーを取得するために使用されます。この関数は、投稿内のショートコードを解析し、ギャラリーに関連する情報を配列として返します。

構文

get_post_gallery( $post, $html );

引数の説明:

  • $post (int|WP_Post|null) — ギャラリーを取得する投稿のIDまたはWP_Postオブジェクト。デフォルトは現在の投稿。
  • $html (bool) — ギャラリーのHTMLを返すかどうか。デフォルトはtrue。

例1: 投稿内のギャラリーを取得

この例では、現在の投稿に含まれるギャラリーを取得し、その情報を表示します。

<?php $gallery = get_post_gallery(); print_r($gallery); ?>

例2: ギャラリーの画像IDを取得

ギャラリーに含まれる画像のIDを取得する例です。

<?php $gallery = get_post_gallery(get_the_ID(), false); $image_ids = explode(',', $gallery['ids']); print_r($image_ids); ?>

例3: ギャラリーのHTMLを無効化

ギャラリーのHTMLを返さず、配列のみを取得する例です。

<?php $gallery = get_post_gallery(get_the_ID(), false); print_r($gallery); ?>

例4: 特定の投稿のギャラリーを取得

指定した投稿IDのギャラリーを取得する例です。

<?php $gallery = get_post_gallery(123, true); echo $gallery; ?>

例5: ギャラリーの画像URLを取得

ギャラリー内の画像のURLを取得する例です。

<?php $gallery = get_post_gallery(get_the_ID(), false); $image_ids = explode(',', $gallery['ids']); foreach ($image_ids as $image_id) { echo wp_get_attachment_url($image_id); } ?>

例6: ギャラリーの画像をループ処理

ギャラリー内の画像をループ処理して表示する例です。

<?php $gallery = get_post_gallery(get_the_ID(), false); $image_ids = explode(',', $gallery['ids']); foreach ($image_ids as $image_id) { echo wp_get_attachment_image($image_id, 'thumbnail'); } ?>

例7: ギャラリーの設定を取得

ギャラリーの設定(列数、サイズなど)を取得する例です。

<?php $gallery = get_post_gallery(get_the_ID(), false); print_r($gallery); ?>

例8: カスタム投稿タイプのギャラリーを取得

カスタム投稿タイプのギャラリーを取得する例です。

<?php $args = array('post_type' => 'custom_post_type', 'posts_per_page' => 1); $custom_posts = get_posts($args); if ($custom_posts) { $gallery = get_post_gallery($custom_posts[0]->ID, true); echo $gallery; } ?>

注意点

  • 投稿にギャラリーが含まれていない場合、get_post_gallery()はfalseを返します。
  • ギャラリーのHTMLを無効化すると、返される配列には画像IDや設定情報が含まれますが、HTMLは含まれません。
  • この関数は、投稿内の最初のショートコードのみを処理します。複数のギャラリーがある場合、最初のものしか取得されません。

関連機能: