web-dev-qa-db-fra.com

Changer itemprop de logo en image sur un logo personnalisé?

J'ajoute des balises schema.org à l'en-tête de mon thème, mais le thème que j'utilise appelle the_custom_logo();. Par défaut, il utilise 'logo' en tant que itemprop.

Est-il possible de changer ceci en image dans le fichier functions.php?

Merci.

C’est la fonction d’appel actuelle du fichier functions.php.

add_theme_support('custom-logo');
3
Jake

Je suppose que vous avez un problème avec Google Validator à propos de itemprop="logo". Vous pouvez vous connecter au filtre get_custom_header et modifier la structure HTML:

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

Ajoutez le code ci-dessus au functions.php de votre thème ou suivez les étapes ici pour créer un thème enfant et utilisez ce code dans son fichier functions.php.

Modifier

Sur la base du commentaire de @ birgire, j'ai écrit une autre fonction pour filtrer la fonction wp_get_attachment_image():

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