我启用custom-logo
了主题,并将其打印<?php the_custom_logo(); ?>
到标题中。是否有机会直接将更多类直接添加到该图像?默认情况下,它仅随附custom-logo
。
我启用custom-logo
了主题,并将其打印<?php the_custom_logo(); ?>
到标题中。是否有机会直接将更多类直接添加到该图像?默认情况下,它仅随附custom-logo
。
Answers:
WordPress提供了用于自定义徽标自定义的筛选器挂钩。钩子get_custom_logo
是过滤器。要更改徽标类别,此代码可能会对您有所帮助。
add_filter( 'get_custom_logo', 'change_logo_class' );
function change_logo_class( $html ) {
$html = str_replace( 'custom-logo', 'your-custom-class', $html );
$html = str_replace( 'custom-logo-link', 'your-custom-class', $html );
return $html;
}
当您发现自己the_custom_logo
依赖时get_custom_logo
,它本身会调用wp_get_attachment_image
来添加custom-logo
类。后一个功能有一个过滤器,wp_get_attachment_image_attributes
您可以使用它来处理图像属性。
因此,您可以做的是建立一个过滤器,以检查custom-logo
该类是否存在,如果是,则添加更多的类。
我想我找到了一个答案。但是我真的想知道这是否是正确的方法?以某种方式感觉有点脏:我只是将wp-includes / general-template.php中与徽标相关的部分复制到了主题的functions.php中,并使用一些自定义类重命名了这些函数:
function FOOBAR_get_custom_logo( $blog_id = 0 ) {
$html = '';
if ( is_multisite() && (int) $blog_id !== get_current_blog_id() ) {
switch_to_blog( $blog_id );
}
$custom_logo_id = get_theme_mod( 'custom_logo' );
if ( $custom_logo_id ) {
$html = sprintf( '<a href="%1$s" class="custom-logo-link" rel="home" itemprop="url">%2$s</a>',
esc_url( home_url( '/' ) ),
wp_get_attachment_image( $custom_logo_id, 'full', false, array(
'class' => 'custom-logo FOO-BAR FOO BAR', // added classes here
'itemprop' => 'logo',
) )
);
}
elseif ( is_customize_preview() ) {
$html = sprintf( '<a href="%1$s" class="custom-logo-link" style="display:none;"><img class="custom-logo"/></a>',
esc_url( home_url( '/' ) )
);
}
if ( is_multisite() && ms_is_switched() ) {
restore_current_blog();
}
return apply_filters( 'FOOBAR_get_custom_logo', $html );
}
function FOOBAR_the_custom_logo( $blog_id = 0 ) {
echo FOOBAR_get_custom_logo( $blog_id );
}
只为正在寻找解决方案的其他人。我发现了这一点,我发现它比接受的答案要清晰得多。
另外,它还提供了简单的方法来更改链接上的URL!只是比接受的答案更详细。
add_filter( 'get_custom_logo', 'add_custom_logo_url' );
function add_custom_logo_url() {
$custom_logo_id = get_theme_mod( 'custom_logo' );
$html = sprintf( '<a href="%1$s" class="custom-logo-link" rel="home" itemprop="url">%2$s</a>',
esc_url( 'www.somewhere.com' ),
wp_get_attachment_image( $custom_logo_id, 'full', false, array(
'class' => 'custom-logo',
) )
);
return $html;
}