自定义徽标、站点标题和描述不会同时显示

时间:2020-10-17 作者:Ricky Ritchey

我遇到的问题是,自定义徽标、网站标题和描述不会同时出现。在下面的图1中,您可以看到,没有自定义徽标,站点标题和描述看起来很好。

<div id="hotwp-logo">
    <?php if ( has_custom_logo() ) : ?>
        <div class="site-branding">
            <a href="<?php echo esc_url( home_url( \'/\' ) ); ?>" rel="home" class="hotwp-logo-img-link">
                <img src="<?php echo esc_url( hotwp_custom_logo() ); ?>" alt="" class="hotwp-logo-img"/>
            </a>
        </div>
    <?php else: ?>
        <div class="site-branding">
            <h1 class="hotwp-site-title"><a href="<?php echo esc_url( home_url( \'/\' ) ); ?>" rel="home"><?php bloginfo( \'name\' ); ?></a></h1>
            <p class="hotwp-site-description"><?php bloginfo( \'description\' ); ?></p>
        </div>
    <?php endif; ?>
</div><!--/#hotwp-logo -->

When I don’t have a logo, the tag line and the description is shown.

Image 1 Image 1

When I add a custom logo, the tag line and the description disappears.

Image 2 Image 2 @

This was edited to show what I need. The tag line and the description need to show, shifting to the right of the logo.

Image 3 Image 3

3 个回复
SO网友:Jim Worrall

也许我这里遗漏了什么,但看起来你有一个if-else。如果有徽标,就会显示出来。否则会显示标题和描述。尝试删除if-else内容。

SO网友:Tony Djukic

Ricky,你必须编写正确的CSS才能让它完全按照你想要的方式显示,但你遇到的问题是,如果自定义徽标存在,你只需要请求自定义徽标。如果它不存在,您需要标题和描述,但前提是没有徽标。

请尝试以下操作:

<div id="hotwp-logo">
<?php if( has_custom_logo() ) : ?>
    <div class="site-branding">
        <div class="logo-container">
            <a href="<?php echo esc_url( home_url( \'/\' ) ); ?>" rel="home" class="hotwp-logo-img-link">
                <img src="<?php echo esc_url( hotwp_custom_logo() ); ?>" alt="" class="hotwp-logo-img"/>
            </a>
        </div>
        <div class="title-container">
            <h1 class="hotwp-site-title">
                <a href="<?php echo esc_url( home_url( \'/\' ) ); ?>" rel="home"><?php bloginfo( \'name\' ); ?></a>
            </h1>
            <p class="hotwp-site-description"><?php bloginfo( \'description\' ); ?></p>
        </div>
    </div>
<?php else : ?>
    <div class="site-branding no-logo">
        <div class="title-container">
            <h1 class="hotwp-site-title"><a href="<?php echo esc_url( home_url( \'/\' ) ); ?>" rel="home"><?php bloginfo( \'name\' ); ?></a></h1>
            <p class="hotwp-site-description"><?php bloginfo( \'description\' ); ?></p>
        </div>
    </div>
<?php endif; ?>
为了便于造型,我将徽标包装在<div> 与班级一起logo-container 对标题和描述也做了同样的处理-这只会让你更容易使用CSS定位它们,但是如果你觉得它们太过了,你可以删除这些额外的div。我还添加了no-logo 类到site-branding div用于没有徽标的实例,以便您可以修改那里的样式。

EDITED | added some CSS:

.site-branding{
     display:flex;
     align-items:center;
     justify-content:flex-start;
     flex-direction:row;
     width:100%;
}
.logo-container{
     width:35%;
}
.title-container{
     width:65%;
     display:flex;
     align-items:flex-start;
     justify-content:flex-start;
     flex-direction:column;
}
.title-container > .hotwp-site-title,
.title-container > .hotwp-site-description{
     display:block;
     width:100%;
}
还没有测试CSS,但这是总体思路

SO网友:Ricky Ritchey

谢谢你,托尼。这是我的css代码。也许这会有帮助。我昨天试图在我的评论中登广告,但它不让我这么做。

#hotwp-logo{
margin:5px 0px 5px 0px;
float:left;
width:41%;
}。hotwp徽标img链接{显示:block;}。hotwp徽标img{显示:块;填充:0;边距:0;}。hotwp网站标题{字体:普通加粗24px‘Playfair Display’,Arial,Helvetica,无衬线;边距:0 0 15px 0!重要;行高:1!重要;颜色:#333333;}。hotwp站点标题a{颜色:#333333;文本装饰:无;}。hotwp站点描述{字体:normal normal 13px Domine,Arial,Helvetica,sans-serif;线条高度:1!重要;颜色:#333333333;}。hotwp标题横幅#hotwp徽标{宽度:41%;}。hotwp标题搜索#hotwp徽标{宽度:71%;}。hotwp标题完整#hotwp徽标{边距:5px 0px 10px 0px;浮点:无;宽度:100%;文本对齐:居中;}。hotwp标题已满。hotwp徽标img{显示:块;填充:0;边距:0自动;}#hotwp徽标{边距:5px 0px 10px 0px;浮点:无;宽度:100%!重要信息;文本对齐:居中;}。hotwp徽标img{显示:块;填充:0;边距:0自动;}