Кастомный логотип в WordPress

Кастомный логотип в WordPress


Для того что бы в вашей кастомной теме можно было менять логотип в настройках темы (кастомайзе), нужно, как минимум, прочесть данную инструкцию и выполнить действия следуя пунктам:

1. Регистрация кастомного логотипа в теме

В файле functions.php добавь этот код, чтобы включить поддержку пользовательского логотипа:

function mytheme_custom_logo_setup() {
    add_theme_support('custom-logo', array(
        'height'      => 100,  // Высота логотипа
        'width'       => 300,  // Ширина логотипа
        'flex-height' => true, // Возможность гибко менять высоту
        'flex-width'  => true, // Возможность гибко менять ширину
    ));
}
add_action('after_setup_theme', 'mytheme_custom_logo_setup');

2. Отображение логотипа в теме

Чтобы вывести логотип в хедере, в файле header.php, добавь следующий код:

<?php
	if (function_exists('the_custom_logo')) {
	    the_custom_logo();
	}
?>

Этот код выведет логотип, установленный через кастомайзер, примерно в таком формате:

<a href="http://example.com/" class="custom-logo-link" rel="home" itemprop="url"> 
    <img width="300" height="100" src="http://example.com/wp-content/imgs/your-logo.webp" class="custom-logo" alt="your site name" /> 
</a>

Возможно, перед тем как начать верстать, вы заранее подумали о дефолтных функциях WordPress’a — в каком виде и с какими классами выводятся стандартные блоки, такие как кастомный логотип, чтобы стилизовать уже готовые компоненты. Но это вряд ли 🙂 поэтому читаем далее — я расскажу, как изменить имена классов и даже типы блоков.

Чтобы изменить атрибуты кастомного логотипа, или тип блока (например вам не нужна ссылка <a>, а нужен блок <div> или вообще только изображение <img>) добавьте следующий код:

 <?php
// Проверяем, поддерживается ли функция вывода логотипа
if (function_exists('the_custom_logo')) {
    // Получаем ID кастомного логотипа из настроек темы
    $custom_logo_id = get_theme_mod('custom_logo');
    // Получаем данные изображения логотипа (URL, размеры и т.д.)
    $logo = wp_get_attachment_image_src($custom_logo_id, 'full');
    
    // Если логотип установлен, выводим его
    if (has_custom_logo()) {
        echo '<a href="' . esc_url(home_url('/')) . '" class="my-custom-logo-link" rel="home" itemprop="url">';
        echo '<img src="' . esc_url($logo[0]) . '" class="my-custom-logo" alt="' . esc_attr(get_bloginfo('name')) . '">';
        echo '</a>';
    }
}
?>

Вы можете адаптировать этот код в соответствии с вашими требованиями, изменяя классы, атрибуты или структуру HTML.

4. Добавим условие изменения структуры кастомного логотипа в зависимости от отображаемой страницы

Зачем вам активная ссылка на главную страницу, если вы и так на главной странице? 🙂 Соответственно, если вы не на главной странице, то пусть будет 🙂


<?php
// Проверяем, поддерживается ли функция вывода логотипа
if ( function_exists( 'the_custom_logo' ) ) {
    // Получаем ID кастомного логотипа из настроек темы
    $custom_logo_id = get_theme_mod( 'custom_logo' );
    // Получаем данные изображения логотипа (URL, размеры и т.д.)
    $logo = wp_get_attachment_image_src( $custom_logo_id, 'full' );
    
    // Если логотип установлен, выводим его
    if ( has_custom_logo() ) {
        echo '<a href="' . esc_url( home_url('/') ) . '" class="my-custom-logo-link" rel="home" itemprop="url">';
        echo '<img src="' . esc_url( $logo[0] ) . '" class="my-custom-logo" alt="' . esc_attr( get_bloginfo('name') ) . '">';
        echo '</a>';
    }
}
?>

5. Вывод

Ну какой тут вывод. Удачи вам! Спасибо, что пришли 🙂



Добавить комментарий

Ваш email не будет опубликован.