Функция get_custom_logo()
используется для получения HTML-разметки кастомного логотипа сайта, установленного в кастомайзере (в настройках темы). Логотип выводится с ссылкой на главную страницу сайта, если тема поддерживает такую функциональность.
Описание
Функция возвращает HTML-код для кастомного логотипа, установленного в кастомайзере. Разметка логотипа включает тег <a>
, который ссылается на главную страницу, и внутри — тег <img>
с изображением логотипа. Если логотип не установлен, функция вернёт пустую строку.
Для работы функции необходимо, чтобы тема поддерживала кастомные логотипы. Это можно сделать, добавив поддержку через функцию add_theme_support('custom-logo')
.
get_custom_logo( int $blog_id ): string
Параметры
$blog_id
(int) необязательный:
ID блога, для которого нужно получить логотип. По умолчанию — ID текущего блога.
Возвращаемое значение
Функция возвращает строку с HTML-разметкой логотипа. Если логотип не установлен, функция вернёт пустую строку.
Пример получения URL изображения логотипа
Если вам нужно получить не сам HTML-код логотипа, а только ссылку на изображение логотипа, можно воспользоваться следующей логикой:
$custom_logo_id = get_theme_mod( 'custom_logo' );
$image = wp_get_attachment_image_src( $custom_logo_id, 'full' );
// Выводим URL изображения логотипа
echo $image[0];
Получение и вывод HTML-кода логотипа
echo get_custom_logo();
При установленном логотипе, HTML-код будет выглядеть примерно так:
<a href="https://mysite.com/" class="custom-logo-link" rel="home" itemprop="url">
<img
width="400"
height="250"
src="https://mysite.com/wp-content/uploads/2024/09/my-logo.png"
class="custom-logo"
alt="MySite Logo"
itemprop="logo"
srcset="https://mysite.com/wp-content/uploads/2024/09/my-logo.png 400w, https://mysite.com/wp-content/uploads/2024/09/my-logo-small.png 200w"
sizes="(max-width: 400px) 100vw, 400px"
/>
</a>
Проверка наличия логотипа
Чтобы проверить, установлен ли логотип, и затем вывести его, можно использовать следующий код:
$logo = get_custom_logo();
if ( $logo ) {
echo 'Логотип установлен!';
echo $logo;
} else {
echo 'Логотип не установлен.';
}
Получение только URL логотипа
Иногда необходимо получить только URL изображения логотипа без HTML-обёртки. Для этого можно использовать следующий код:
// Получаем ID логотипа
$custom_logo_id = get_theme_mod( 'custom_logo' );
// Получаем URL логотипа
$logo_url = wp_get_attachment_image_src( $custom_logo_id , 'full' );
// Выводим URL
if ( $logo_url ) {
echo 'URL логотипа: ' . $logo_url[0];
} else {
echo 'Логотип не установлен.';
}
Использование с хуками
Функция get_custom_logo()
поддерживает следующие хуки:
get_custom_logo_image_attributes
— позволяет модифицировать атрибуты изображения логотипа перед выводом.get_custom_logo
— позволяет модифицировать HTML-разметку логотипа перед выводом.
Пример использования хука для изменения атрибута alt
у логотипа:
add_filter( 'get_custom_logo_image_attributes', function( $attrs ) {
$attrs['alt'] = 'Новый Alt-текст для логотипа';
return $attrs;
});
Заключение
Функция get_custom_logo()
является удобным способом получения и вывода кастомного логотипа, который был настроен через кастомайзер WordPress. Она возвращает HTML-разметку с изображением логотипа и ссылкой на главную страницу.