WordPress как на ладони
wordpress jino

the_custom_logo() WP 4.5.0

Выводит на экран HTML код логотипа сайта, установленного в настройках темы. Код будет такой структуры: <a href="/"><img></a>.

Это обертка для конструкции: echo get_custom_logo( $blog_id );

Чтобы можно было установить логотип в настройках темы, нужно включить поддержку темы custom-logo: add_theme_support( 'custom-logo' ).

Работает на основе: get_custom_logo()

Хуков нет.

Возвращает

Ничего, а выводит результат на экран. Если логотип в настройках темы не установлен то ничего не выведет.

Использование

<?php the_custom_logo( $blog_id ); ?>
$blog_id(число)
ID сайта/блога, логотип которого нужно получить.
По умолчанию: 0 (текущий блог)

Примеры

#1 Выведем на экран логотип сайта

<?php the_custom_logo( $blog_id ); ?>

/* Выведет такой HTML код (только в одну строку):

<a href="http://wptest.ru/" class="custom-logo-link" rel="home" itemprop="url">
	<img 
	width="491" 
	height="299" 
	src="http://wptest.ru/wp-content/uploads/2013/04/cropped-cropped-triforce-wallpaper.jpg" 
	class="custom-logo" 
	alt="cropped-cropped-triforce-wallpaper.jpg" 
	itemprop="logo" 
	srcset="http://wptest.ru/wp-content/uploads/2013/04/cropped-cropped-triforce-wallpaper.jpg 491w, http://wptest.ru/wp-content/uploads/2013/04/cropped-cropped-triforce-wallpaper-300x183.jpg 300w" 
	sizes="(max-width: 491px) 100vw, 491px" 
	/>
</a>
*/

#2 Получим логотип, но без ссылки на главную

$logo_img = '';
if( $custom_logo_id = get_theme_mod('custom_logo') ){
	$logo_img = wp_get_attachment_image( $custom_logo_id, 'full', false, array(
		'class'    => 'custom-logo',
		'itemprop' => 'logo',
	) );
}

echo $logo_img;

Код the custom logo: wp-includes/general-template.php VER 4.9.1

<?php
function the_custom_logo( $blog_id = 0 ) {
	echo get_custom_logo( $blog_id );
}

Cвязанные функции

Из метки: custom_logo (custom logo логотип)

Еще из раздела: Другие функции темы

the_custom_logo 14 комментариев
Полезные 3 Вопросы 3 Все
  • lincaseidhe62 cайт: ardeya.ru

    а класс для логотипа произвольный установить можно?

    Ответить1.5 года назад #
    • Kama4696

      Через эту функцию нельзя. Но можно получить ID вложения логотипа через

      $custom_logo_id = get_theme_mod( 'custom_logo' );

      и дальше зная ID картинки-вложения делать с ней что угодно используя функции вложений WordPress

      Ответить1.5 года назад #
      • Макс

        Здравствуйте. Я так понимаю id картинки будет "custom_logo". Если так, то мне нужно найти этот id и в нем менять размеры логотипа?

      • Макс

        Уважаемый Kama, подскажите пожалуйста. Никак не могу определить где прописаны размеры логотипа в теме Medplus. Пробовал найти по id и функциям, но никак не могу "допереть". В файлах стилей темы Medplus так и не нашел ничего...
        Заранее спасибо! help

  • Функция the_custom_logo прописана в wp-includes/jeneral-templates.php
    А в теме Twenty Sixteen появилась функция twentysixteen_the_custom_logo(). Подскажите, пожалуйста, где эта функция прописана в теме?

    • campusboy1951 cайт: www.youtube.com/c/wpplus

      Здесь
      ..\twentysixteen\inc\template-tags.php
      На 241 сроке:

      if ( ! function_exists( 'twentysixteen_the_custom_logo' ) ) :
      /**
       * Displays the optional custom logo.
       *
       * Does nothing if the custom logo is not available.
       *
       * @since Twenty Sixteen 1.2
       */
      function twentysixteen_the_custom_logo() {
      	if ( function_exists( 'the_custom_logo' ) ) {
      		the_custom_logo();
      	}
      }
      endif;

      Используется потом в файле header.php в 32 строке

      <?php twentysixteen_the_custom_logo(); ?>
      1
      • т.е., - единственная роль функции twentysixteen_the_custom_logo() - вызвать функцию the_custom_logo() . Хм, однако...

        • campusboy1951 cайт: www.youtube.com/c/wpplus

          В этом нет ничего удивительного, это правильно сделано. Видите, идёт проверка, определена ли такая функция раньше или нет. Это сделано для того, чтобы вы при создании дочерней темы могли переопределить эту функцию и добавить свои хотелки. А вот функцию the_custom_logo переопределить не выйдет, так она определяется раньше в самом движке, чем файлы темы, и это вызовет ошибку.

          1
  • Скажите, а где в теме размещаются картинки для логотипа и постов? Никакой папки images я в этой теме что-то не вижу...

    • campusboy1951 cайт: www.youtube.com/c/wpplus

      Они загружаются в медиабиблиотеку движка. Физическое месторасположение wp-content -> uploads -> год -> месяц.

      2
  • shigaev cайт: shigaev.com

    Как лучше реализовать вывод того или иного лого в зависимости от формирования таксономии? Цель — индивидуальные лого для каждых страницы, раздела и метки.

    Ответить3 месяца назад #
  • андрей

    Подскажите есть возможность вывода логотипа функцией - формата

    <img>

    без тега

    <a>
    Ответить2 месяца назад #
    • Kama4696
      $logo_img = '';
      if ( $custom_logo_id = get_theme_mod( 'custom_logo' ) ) {
      	$logo_img = wp_get_attachment_image( $custom_logo_id, 'full', false, array(
      		'class'    => 'custom-logo',
      		'itemprop' => 'logo',
      	) );
      }
      
      echo $logo_img;
      Ответить2 месяца назад #

Здравствуйте, !

Ваш комментарий
Предпросмотр