Логотип WordPress с изображением по умолчанию / резервным изображением

Я пытаюсь использовать новую функцию логотипа WordPress для достижения следующих целей:

  • Отображать логотип по умолчанию / запасной вариант.
  • Если версия WordPress поддерживает собственный логотип, разрешите пользователю заменить логотип по умолчанию / резервный логотип на собственный логотип в Настройщике.
  • Если версия WordPress не поддерживает собственный логотип или пользовательский логотип не установлен (или удаляется), отобразите логотип по умолчанию / резервный.

Пока что это лучший код, с которым мне приходится работать:

<?php if ( function_exists( 'the_custom_logo' ) ) : ?>
<?php if ( has_custom_logo() ) : ?>
<?php the_custom_logo(); ?>
<?php else : ?>
<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home" title="<?php bloginfo( 'name' ); ?>"><img src="<?php echo get_stylesheet_directory_uri(); ?>/images/logo.png" alt="<?php bloginfo( 'name' ); ?>" width="100" height="50" /></a></h1>
<?php endif; ?>
<?php else : ?>
<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home" title="<?php bloginfo( 'name' ); ?>"><img src="<?php echo get_stylesheet_directory_uri(); ?>/images/logo.png" alt="<?php bloginfo( 'name' ); ?>" width="100" height="50" /></a></h1>
<?php endif; ?>

Есть ли более чистый или более эффективный способ сделать это без повторения кода для резервного изображения дважды?

1

Решение

Спасибо, но я думаю, что нашел лучшее решение:

<?php if ( function_exists( 'the_custom_logo' ) && has_custom_logo() ) : ?>
<?php the_custom_logo(); ?>
<?php else : ?>
<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home" title="<?php bloginfo( 'name' ); ?>"><img src="<?php echo get_stylesheet_directory_uri(); ?>/images/logo.png" alt="<?php bloginfo( 'name' ); ?>" width="100" height="50" /></a></h1>
<?php endif; ?>
3

Другие решения

Вы можете проверить оба function_exist() а также has_custom_logo() в том же if условие для получения одного else состояние.

$logo = ( ( function_exists( 'the_custom_logo' ) ) && ( has_custom_logo() ) ) ? the_custom_logo() : null;
if ($logo) {
echo $logo;
} else {
echo '<h1 class="site-title"><a href="' . esc_url( home_url( '/' ) ) . '" rel="home" title="' . bloginfo( 'name' ) . '"><img src="' . get_stylesheet_directory_uri() . '/images/logo.png" alt="' . bloginfo( 'name' ) . '" width="100" height="50" /></a></h1>';
}
1

По вопросам рекламы [email protected]