get_custom_logo() WP 4.5.0

Отримує HTML-код логотипу сайту встановленого в кастомайзері (в налаштуваннях теми). Код буде таким: <a href=”/”><img></a> .

Щоб встановити логотип у кастомайзері, потрібно включити підтримку custom-logoу теми: add_theme_support( ‘custom-logo’ ) .

Використовуйте $custom_logo_id = get_theme_mod( 'custom_logo' );щоб отримати ID вкладення логотипу, а потім обробити його якось по-іншому.

Працює на основі:
get_theme_mod()

Повертає

Строку. HTML код логотипу. Код міститиме посилання на головну сторінку та в ній IMG тег самого логотипу.

Якщо логотип у налаштуваннях теми не встановлено, поверне порожній рядок.

Використання

get_custom_logo($blog_id);
$blog_id
(число)
ID сайту/блогу, логотип якого потрібно отримати.


Типово: 0 (поточний блог)

Приклади

1

#1 Отримання тільки посилання (URL) логотипу

// Отримуємо посилання на логотип
$custom_logo__url = wp_get_attachment_image_src( get_theme_mod( 'custom_logo' ), 'full' );
// виводимо
echo $custom_logo__url[0];
0

#2 Отримаємо логотип сайту

Допустимо, у нас включена підтримка логотипу і ми його встановили, тоді:

echo get_custom_logo();

/* Виведе такий HTML код (тільки в один рядок):

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

#3 Перевірка чи логотип для сайту

$logo = get_custom_logo();

if($logo)
	echo 'Лого є';

список змін

З версії 4.5.0Введено.
З версії 5.5.0Додаткові опції до remove the link on home page with unlink-homepage-logo theme support for the custom-logo theme feature.
З версії 5.5.1Disabled lazy-loading by default.

Код get_custom_logo() WP 6.0.2

function get_custom_logo( $blog_id = 0 ) {
	$html = '';
	$ switched_blog = false;

	if ( is_multisite() && ! empty( $blog_id ) && get_current_blog_id() !== (int) $blog_id ) {
		switch_to_blog($blog_id);
		$ switched_blog = true;
	}

	$custom_logo_id = get_theme_mod( 'custom_logo');

	// We have a logo. Logo є go.
	if ( $custom_logo_id ) {
		$custom_logo_attr = array(
			'class' => 'custom-logo',
			'loading' => false,
		);

		$unlink_homepage_logo = (bool) get_theme_support( 'custom-logo', 'unlink-homepage-logo');

		if ( $unlink_homepage_logo && is_front_page() && ! is_paged() ) {
			/*
			 * Якщо на домашній сторінці, натиснути на logo alt atribut to empty string,
			 * as the image is decorative and doesn't need its purpose to be described.
			 */
			$custom_logo_attr['alt'] = '';
		} else {
			/*
			 * Якщо logo attribute is empty, get the site title and explicitly pass it
			 * to the attributes used by wp_get_attachment_image().
			 */
			$image_alt = get_post_meta( $custom_logo_id, '_wp_attachment_image_alt', true );
			if ( empty( $image_alt ) ) {
				$custom_logo_attr['alt'] = get_bloginfo( 'name', 'display' );
			}
		}

		/**
		 * Filters List of custom logo image attributes.
		 *
		 * @ Since 5.5.0
		 *
		 * @param array $custom_logo_attr Custom logo image attributes.
		 * @param int $custom_logo_id Custom logo attachment ID.
		 * @param int $blog_id ID blog для отримання custom logo for.
		 */
		$custom_logo_attr = apply_filters( 'get_custom_logo_image_attributes', $custom_logo_attr, $custom_logo_id, $blog_id);

		/*
		 * Якщо alt attribute is not empty, there's no need to explicitly pass it
		 * because wp_get_attachment_image() already adds the alt attribute.
		 */
		$image = wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr );

		if ( $unlink_homepage_logo && is_front_page() && ! is_paged() ) {
			// Якщо на домашній сторінці, не з'єднати логотип до home.
			$html = sprintf(
				'<span class="custom-logo-link">%1$s</span>',
				$image
			);
		} else {
			$aria_current = is_front_page() && ! is_paged()? ' aria-current="page"' : '';

			$html = sprintf(
				'<a href="%1$s" class="custom-logo-link" rel="home"%2$s>%3$s</a>',
				esc_url( home_url( '/' ) ),
				$aria_current,
				$image
			);
		}
	} elseif ( is_customize_preview() ) {
		// If no logo is set but we're in the Customizer, leave a placeholder (необхідний для live preview).
		$html = sprintf(
			'<a href="%1$s" class="custom-logo-link" style="display:none;"><img class="custom-logo" alt="" /></a>',
			esc_url( home_url( '/' ) )
		);
	}

	if ( $switched_blog ) {
		restore_current_blog();
	}

	/**
	 * Filters the custom logo output.
	 *
	 * @ Since 4.5.0
	 * @since 4.6.0 Added `$blog_id` parameter.
	 *
	 * @param string $html Custom logo HTML output.
	 * @param int $blog_id ID blog для отримання custom logo for.
	 */
	return apply_filters( 'get_custom_logo', $html, $blog_id);
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *