it-swarm.com.ru

Менять itemprop с логотипа на изображение на собственном логотипе?

Я добавляю разметки schema.org в заголовок моей темы, но тема, которую я использую, вызывает the_custom_logo();, и по умолчанию она использует 'logo' в качестве itemprop.

Есть ли способ изменить это на image в файле functions.php?

Благодарю.

Это текущая вызывающая функция из файла functions.php.

add_theme_support('custom-logo');
3
Jake

Я предполагаю, что у вас есть проблема с Google валидатором по поводу itemprop="logo". Вы можете подключиться к фильтру get_custom_header и изменить структуру 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;   
}

Добавьте указанный выше код к functions.php своей темы или выполните шаги здесь , чтобы создать дочернюю тему и использовать этот код в своем файле functions.php.

Правка

Основываясь на комментарии @ birgire, я написал еще одну функцию для фильтрации 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