问题描述

我为我的主题启用了 custom-logo,并将其与<?php the_custom_logo(); ?> 打印到标题中。有没有机会直接添加更多的类到这个图像?默认情况下,它只附带 custom-logo

最佳解决方案

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

参考:How to change wordpress custom logo and logo link class

次佳解决方案

以下是一个建议,我们如何尝试通过 wp_get_attachment_image_attributes 过滤器 (未测试) 添加类:

add_filter( 'wp_get_attachment_image_attributes', function( $attr )
{
    if( isset( $attr['class'] )  && 'custom-logo' === $attr['class'] )
        $attr['class'] = 'custom-logo foo-bar foo bar';

    return $attr;
} );

您可以根据自己的需要调整课程。

第三种解决方案

当你发现自己的 the_custom_logo 依赖于 get_custom_logo,它本身调用 wp_get_attachment_image 添加 custom-logo 类。后一个函数有一个过滤器 wp_get_attachment_image_attributes,您可以使用它来处理图像属性。

所以你可以做的是构建一个过滤器,检查 custom-logo 类是否存在,如果是,则添加更多的类。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。