【问题标题】:Remove site title and site description if a custom logo has been set - Wordpress如果设置了自定义徽标,则删除网站标题和网站描述 - Wordpress
【发布时间】:2017-01-22 05:25:04
【问题描述】:

设置自定义徽标后,如何同时删除网站标题和网站描述?

我在 Wordpress 定制器中添加了选择自定义徽标的选项,但现在我正在努力解决 php 试图隐藏标题和描述的问题。

底部关于描述的一段代码应该以某种方式添加到 if/else 语句中,该语句已经删除了站点标题,但我不确定如何。

<div class="site-branding">
        <?php
        if(the_custom_logo) {
            the_custom_logo();
        }   elseif ( is_front_page() && is_home() ) { ?>
            <h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
        <?php } else { ?>
            <p class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
        <?php
        }

编辑: 设置自定义徽标后,上面的代码会删除站点标题。

以下是涵盖网站描述的代码。我不确定应该以何种方式更改这段代码,以告诉它在设置自定义徽标(就像站点标题一样)时丢失。

        $description = get_bloginfo( 'description', 'display' );
        if ( $description || is_customize_preview() ) { ?>
            <p class="site-description"><?php echo $description; /* WPCS: xss ok. */ ?></p>
        <?php
        } ?>
    </div><!-- .site-branding -->

简而言之:网站应该显示徽标或标题 + 描述。

我对 php 还是很陌生,任何帮助或建议将不胜感激。

编辑:

到目前为止,我非常感谢您的帮助,但我似乎给了您错误的想法。我已经让我的自定义徽标工作了。我可以毫无问题地将其添加并保存在定制器中,并且我还可以用它来替换网站上的站点标题。因此,让徽标替换站点标题不是问题。我还希望它替换我遇到的站点描述(因此徽标替换了标题和描述)。

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    当您想要打印/回显结果时使用the_custom_logo()。当您想要返回结果时使用get_custom_logo()(例如,当您想要将其分配给变量或在条件中使用时)。

    <?php
        if( get_custom_logo() ) {
            the_custom_logo();
        } elseif ( is_front_page() && is_home() ) {
            ?>
            <h1 class="site-title">
                <a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a>
            </h1>
            <?php
            $description = get_bloginfo( 'description', 'display' );
        } else {
            ?>
            <p class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
            <?php
            $description = get_bloginfo( 'description', 'display' );
        }
    
        if ( ( isset($description) && $description) || is_customize_preview() ) {
            ?>
            <p class="site-description"><?php echo $description; /* WPCS: xss ok. */ ?></p>
            <?php
        }
    ?>
    

    【讨论】:

    • 感谢 Ezra 的评论,但徽标不是问题。我得到了那个工作。我只是在努力删除站点标题和描述。吃掉底部的代码涵盖了我只需将其(或部分)添加到上面的 if else 语句中的描述,但我不确定如何。
    • @Marrrc 好的,我已经相应地调整了上述内容。
    • 就是这样!谢谢以斯拉!
    【解决方案2】:

    我可能弄错了,但你的说法自相矛盾。

    } elseif ( is_front_page() && is_home() ) {
    

    is_front_page() 用于将页面设置为主页时使用,is_home() 用于标识博客页面。

    使用:

    } elseif ( is_front_page() || is_home() ) {
    

    可能更适合您的目标。

    编辑:

        <?php
        $logoSet = the_custom_logo();
        if($logoSet) {
            the_custom_logo();
        }   elseif ( is_front_page() && is_home() ) { ?>
            <h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
        <?php } else { ?>
            <p class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
        <?php
        }
    
        $description = get_bloginfo( 'description', 'display' );
        if ( $description || is_customize_preview() ) { ?>
            <p class="site-description"><?php echo $description; /* WPCS: xss ok. */ ?></p>
        <?php
        } ?>
    

    【讨论】:

    • 嘿,克里斯托弗,我明白你的意思,有道理。这实际上是_underscores主题准备的方式我没有碰过它。我会更改它只是为了看看会发生什么,但我可能会保持原样。不过谢谢!
    • 另一个建议。尝试将 the_custom_logo 设置为上面编辑的变量
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    相关资源
    最近更新 更多