带有 Default/Fallback 图片的 WordPress 自定义徽标
WordPress Custom Logo with Default/Fallback Image
我正在尝试使用 WordPress 的新自定义徽标功能来完成以下操作:
- 显示 default/fallback 徽标。
- 如果 WordPress 版本支持自定义徽标,允许用户在定制程序中用自定义徽标替换 default/fallback 徽标。
- 如果 WordPress 版本不支持自定义徽标或未设置(或删除)自定义徽标,则显示 default/fallback 徽标。
到目前为止,这是我必须使用的最佳代码:
<?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; ?>
是否有更简洁或更有效的方法来执行此操作而无需重复两次备用图像的代码?
您可以在相同的 if
条件下测试 function_exist()
和 has_custom_logo()
以获得单个 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>';
}
谢谢,但我想我找到了更好的解决方案:
<?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; ?>
我正在尝试使用 WordPress 的新自定义徽标功能来完成以下操作:
- 显示 default/fallback 徽标。
- 如果 WordPress 版本支持自定义徽标,允许用户在定制程序中用自定义徽标替换 default/fallback 徽标。
- 如果 WordPress 版本不支持自定义徽标或未设置(或删除)自定义徽标,则显示 default/fallback 徽标。
到目前为止,这是我必须使用的最佳代码:
<?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; ?>
是否有更简洁或更有效的方法来执行此操作而无需重复两次备用图像的代码?
您可以在相同的 if
条件下测试 function_exist()
和 has_custom_logo()
以获得单个 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>';
}
谢谢,但我想我找到了更好的解决方案:
<?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; ?>