在开发wordpress主题时,有时候我们内容中虽然插入了gallery相册,但是显示的时候,我们并不想直接在内容中显示它们。wordpress为我们想到了这一点,并提供了一个filter hook,它就是“post_gallery”。
在functions.php文件中添加以下代码:
// 移除内容中的相册
add_filter('post_gallery', function(){
return ' ';
});
注意返回的是一个空白字符,如果没有这个空白字符,内容中仍然会原样输出相册。
那么想在指定地方输出相册,应该怎么办呢?在想要显示的地方可使用以下参考代码:
$gallery = get_post_gallery(get_the_ID(), false);
$img_ids = [];
if(!empty($gallery['ids'])){
// 获取到图片ID
$img_ids = explode(',', $gallery['ids']);
}
foreach($img_ids as $a){
// 获取到图片地址
$src = wp_get_attachment_image_url($a);
echo $src;
}