wake-up-neo.com

Ändern von itemprop vom Logo zum Bild im benutzerdefinierten Logo?

Ich füge schema.org-Markups zum Header meines Themas hinzu, aber das Thema, das ich verwende, ruft the_custom_logo(); auf und standardmäßig verwendet es 'logo' als itemprop.

Gibt es eine Möglichkeit, dies in der Datei functions.php in image zu ändern?

Vielen Dank.

Dies ist die aktuelle aufrufende Funktion aus der Datei functions.php.

add_theme_support('custom-logo');
3
Jake

Ich nehme an, Sie haben ein Problem mit dem Google Validator in Bezug auf itemprop="logo". Sie können sich in den get_custom_header-Filter einhängen und die HTML-Struktur ändern:

add_filter( 'get_custom_logo', 'my_custom_logo' );
// Filter the output of logo to fix Googles Error about itemprop logo
function my_custom_logo() {
    $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( home_url( '/' ) ),
            wp_get_attachment_image( $custom_logo_id, 'full', false, array(
                'class'    => 'custom-logo',
            ) )
        );
    return $html;   
}

Fügen Sie den obigen Code zum functions.php Ihres Themas hinzu oder folgen Sie den Schritten hier , um ein untergeordnetes Thema zu erstellen und diesen Code in der functions.php-Datei zu verwenden.

Bearbeiten

Basierend auf @ birgires Kommentar habe ich eine weitere Funktion geschrieben, um die wp_get_attachment_image() zu filtern:

add_filter('wp_get_attachment_image', function ($attachment_id, $size , $icon , $attr) {
        // If the class is 'custom-logo', then change the itemprop to image
        if ($attr['class'] =='custom-logo') {
            $attr['itemprop'] = 'image';
        }
        return $attr;
},10,3);
2
Jack Johansson