这里有三种方法
方法#1
通常使用自定义HTML包装输出。我们可以使用
post_gallery
过滤器和
gallery_shortcode()
回调:
/**
* HTML Wrapper - Support for a custom class attribute in the native gallery shortcode
*/
add_filter( \'post_gallery\', function( $html, $attr, $instance )
{
if( isset( $attr[\'class\'] ) && $class = $attr[\'class\'] )
{
// Unset attribute to avoid infinite recursive loops
unset( $attr[\'class\'] );
// Our custom HTML wrapper
$html = sprintf(
\'<div class="wpse-gallery-wrapper-%s">%s</div>\',
esc_attr( $class ),
gallery_shortcode( $attr )
);
}
return $html;
}, 10 ,3 );
Example:
如果我们设置
class
本机库短代码的属性为small:
[gallery class="small" columns="2" ids="350,349,302,305"].
然后HTML输出将为:
<div class="wpse-gallery-wrapper-small">
<!-- The default gallery HTML output comes here -->
</div>
我们现在可以用
.wpse-gallery-wrapper-small
类别选择器。
方法#2
另一种方法是在一些字符串替换的帮助下修改当前的class属性。让我们使用
post_gallery
以及
gallery_style
一起筛选:
/**
* HTML Replacement - Support for a custom class attribute in the native gallery shortcode
*/
add_filter( \'post_gallery\', function( $html, $attr, $instance )
{
add_filter( \'gallery_style\', function( $html ) use ( $attr )
{
if( isset( $attr[\'class\'] ) && $class = $attr[\'class\'] )
{
unset( $attr[\'class\'] );
// Modify & replace the current class attribute
$html = str_replace(
"class=\'gallery ",
sprintf(
"class=\'gallery wpse-gallery-%s ",
esc_attr( $class )
),
$html
);
}
return $html;
} );
return $html;
}, 10 ,3 );
Example:
使用此短代码:
[gallery class="small" columns="2" ids="350,349,302,305"].
将提供以下HTML输出:
<style>...</style>
<div id="gallery-1" class=\'gallery wpse-gallery-small ... \'> ... </div>
其中,类选择器
.wpse-gallery-wrapper-small
.
方法#3使用gallery实例的默认id选择器。
id=\'gallery-1\'
或默认类选择器:
class=\'gallery galleryid-123 gallery-columns-3 gallery-size-thumbnail\'
在哪里
123
是当前帖子id。