仅在图库中显示图像/附件?

时间:2013-02-07 10:42:33

标签: wordpress

当我创建页面,添加图库,并在前端浏览此图库时,它将浏览与该页面关联的所有附件,而不仅仅是该图库中的图像。有没有办法过滤所有其他附件,只显示某个图库中的图像?因此,例如,当我删除图库并在同一页面上添加新图库时>只显示新画廊?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这可能不是最优雅的方式,但我发现它非常有用。

将帖子ID传递给下面的函数会从该帖子的post_content加载图库。因此,您将创建一个库并将其插入到您的帖子内容中,然后在模板中运行此功能,并将返回该库中的一系列附件,您可以随意使用,即幻灯片等。< / p>

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);
}