如何在 wordpress 主题的不同页面上显示不同的 logo?

Posted

技术标签:

【中文标题】如何在 wordpress 主题的不同页面上显示不同的 logo?【英文标题】:How to show different logo on different pages in wordpress theme? 【发布时间】:2012-05-29 17:44:28 【问题描述】:

这里是在我当前使用的 wordpress 主题上显示标题部分的代码。

<div id="site-branding" class="clearfix">
        <?php
        $logo = isset($options['logo'])? $options['logo']: '';
        if ($logo == "")
            $hidetitle = $options['hide_title'];
            if ($hidetitle == "No") 

                if(!is_home() || !is_front_page())  ?>
                    <div class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>"><?php bloginfo('name'); ?></a></div>
                    <div class="site-description"><?php bloginfo('description'); ?></div>
                <?php  else  ?>
                    <h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>"><?php bloginfo('name'); ?></a></h1>
                    <div class="site-description"><?php bloginfo('description'); ?></div>

            <?php  
         else 
            echo '<div class="site-logo"><a href="'. esc_url( home_url( '/' ) ) .'">';
            echo '<img title="'. get_bloginfo('name') .'" src="' . $logo .'" />';
            echo '</a></div>';
         ?>
    </div><!-- end #site-branding -->

此代码的第一部分检查徽标的存在。如果徽标不存在,它将仅显示主题的名称和描述,前提是未在主题选项中选中隐藏。它会使主页/首页上的名称和描述的样式略有不同,而在其他页面上的样式则不同。但是,如果存在徽标,它将在所有页面上显示该徽标。

现在我想要实现的是(使用 CSS)在 Front/Home 页面上以不同的方式设置 LOGO 样式,而在其他页面上我想为 logo 添加一些额外的 css 类。

我尝试在上面代码的第二部分使用 elseif 语句,但无法得到想要的结果。

请建议我如何正确地做到这一点。

更新: 因为我不能发布我自己问题的答案,所以我在这里发布。 好吧,我在删除了一些 PHP 关闭元素后使用了这段代码,它就像魅力一样。我在这里再次发布它只是为了确保没有错误。

if(is_home() || is_front_page()) 
        echo '<h1 class="site-logo"><a href="'. esc_url( home_url( '/' ) ) .'">';
        echo '<img calss="mylogo1" title="'. get_bloginfo('name') .'" src="' . $logo .'" />';
        echo '</a></h1>';
              else 
        echo '<div class="site-logo"><a href="'. esc_url( home_url( '/' ) ) .'">';
        echo '<img calss="mylogo2" title="'. get_bloginfo('name') .'" src="' . $logo .'" />';
        echo '</a></div>';
         ?>

【问题讨论】:

【参考方案1】:
if(!is_home() || !is_front_page())  ?>
    echo '<div class="site-logo"><a href="'. esc_url( home_url( '/' ) ) .'">';
    echo '<img calss="mylogo1" title="'. get_bloginfo('name') .'" src="' . $logo .'" />';
    echo '</a></div>';
<?php  else  ?>
    echo '<div class="site-logo"><a href="'. esc_url( home_url( '/' ) ) .'">';
    echo '<img calss="mylogo2" title="'. get_bloginfo('name') .'" src="' . $logo .'" />';
    echo '</a></div>';
<?php  ?>

我们与您之前使用的相同,为您的每个条件设置不同的类(即 mylogo1/mylogo2)。

【讨论】:

感谢您的提示。但是 echo 不在 php 中,但我认为它应该在 php 中才能正常工作。我对 PHP 一无所知,但我使用了这段代码,但它没有用。该网站根本没有加载。这就是为什么这么说。 查看@ajay-patel 上方的更新。顺便说一句,非常感谢。你的回答奏效了。一旦你告诉我上面的代码没有错,我就会投赞成票。 @AamirUsman 我不这么认为,在我的编辑器中尝试没有任何语法错误

以上是关于如何在 wordpress 主题的不同页面上显示不同的 logo?的主要内容,如果未能解决你的问题,请参考以下文章

如何在wordpress中实现不同页面隐藏或者显示侧边栏?

在静态 html 页面上显示最新的 wordpress 特色图片

如何在我的 WordPress 主题上获得粘性页脚?

WordPress:如何使用 $wp_query 按类别过滤帖子?

PHP 在IE6上显示不同的主题 - Wordpress

如何在wordpress主题中注册html页面的Css