当我创建了一个页面,添加一个画廊,和浏览的前端,将浏览了与该页面相关联的所有附件这个画廊,而不是只是图库中的图片。 有没有一种方法来过滤所有其他的附件,只有在一定的画廊内显示的图像? 这样,例如,当我删除了画廊,并在同一页面上添加一个新的画廊>只有新的画廊显示?
有任何想法吗?
当我创建了一个页面,添加一个画廊,和浏览的前端,将浏览了与该页面相关联的所有附件这个画廊,而不是只是图库中的图片。 有没有一种方法来过滤所有其他的附件,只有在一定的画廊内显示的图像? 这样,例如,当我删除了画廊,并在同一页面上添加一个新的画廊>只有新的画廊显示?
有任何想法吗?
这可能不是最优雅的方式,但我发现它非常有用。
传递一个交ID下面的函数将加载从柱的POST_CONTENT画廊。 所以,你会创建一个画廊并将其插入到您的文章内容,然后在模板中运行该功能,并带有附件的该库中的数组,你可以自由地返回到任何与,即幻灯片和喜欢。
function wp_load_gallery($post_id) {
$post = get_post( $post_id );
$regx = '/' . get_shortcode_regex() . '/';
preg_match( $regx, $post->post_content, $matches );
$ids = shortcode_parse_atts( $matches[3] );
$gallery = array( );
foreach( explode( ',', $ids['ids'] ) as $id ) {
if($id) {
$gallery[] = get_post( $id );
}
}
return $gallery;
}
需要注意的是短码不会从内容剪切,所以当你显示的内容,你应该通过strip_shortcodes功能,即运行它:
echo strip_shortcodes( get_the_content() );
这允许您更新,只要你想用任何你想要的库。
编辑:
为了简单地显示所有图像:
$gallery = wp_load_gallery($YOUR_POST_ID);
foreach($gallery as $image) {
echo wp_get_attachment_image($image->ID);
}