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');
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
.
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);