get_post_galleries()
可用于获取有关帖子中每个画廊的信息。确保在false
之后传递$post_id
以仅返回数据。
从那时起,您可以遍历不同的画廊并ids
从ids
钥匙中拉出。这实际上是一个字符串,因此您需要将explode()
其放入一个数组中,您将使用该数组将array_merge()
其添加到ids
.
由于可能包含 duplicate ids
,因此运行array_unique()
将确保每个id
仅列出一次。
$post_id = 298;
$image_ids = array ();
// get all the galleries in the post
if ( $galleries = get_post_galleries( $post_id, false ) ) {
foreach ( $galleries as $gallery ) {
// pull the ids from each gallery
if ( ! empty ( $gallery[ 'ids' ] ) ) {
// merge into our final list
$image_ids = array_merge( $image_ids, explode( ',', $gallery[ 'ids' ] ) );
}
}
}
// make the values unique
$image_ids = array_unique( $image_ids );
// convert the ids to urls -- $gallery[ 'src' ] already holds this info
$image_urls = array_map( "wp_get_attachment_url", $image_ids );
// ---------------------------- //
echo '<pre>';
print_r ( $image_ids );
print_r ( $image_urls );
echo '</pre>';