WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

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()

Хуков нет.

Возвращает

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

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

<?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;

Список изменений

С версии 4.5.0 Введена.

Код the custom logo: wp-includes/general-template.php WP 5.2.2

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

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

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

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

Первая образовательная компания

Не секрет, что первая образовательная компания имеет сертифицированных специалистов.

cambridge.ua

12 комментов
Полезные 3 Вопросы 1 Все
  • lincaseidhe76 cайт: lincaseidhe.ru

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

    Ответить3.1 года назад #
    • Kama7528

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

      $custom_logo_id = get_theme_mod( 'custom_logo' );

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

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

    Ответить2.4 года назад #
    • campusboy3384 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
      Ответить2.4 года назад #
      • т.е., - единственная роль функции twentysixteen_the_custom_logo() - вызвать функцию the_custom_logo() . Хм, однако...

        Ответить2.4 года назад #
        • campusboy3384 cайт: www.youtube.com/c/wpplus

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

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

    Ответить2.4 года назад #
    • campusboy3384 cайт: www.youtube.com/c/wpplus

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

      2
      Ответить2.4 года назад #
  • андрей

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

    <img>

    без тега

    <a>
    Ответить1.7 года назад #
    • Kama7528
      $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;
      1
      Ответить1.7 года назад #
  • SEO guide cайт: seoguide.com.ua

    Ребята столкнулся с проблемой в теме BeTheme на своем сайте, а именно 4 логотипа и не знаю как их убрать. Как я понял там логотипы для разных разрешений но мне нужен только, один логотип и он отображался на всех устройствах.

    Ответить2 мес назад #
Здравствуйте, !     Войти . Зарегистрироваться