WordPress主题首页logo有h1标签,分类&文章内页又有2个h1怎么办?

WordPress主题首页logo有h1标签,分类&文章内页又有2个h1,怎么办?

网络营销方法很多,其中以SEO最具效果,非常适合新媒体人做为公众号推广战略。

网站优化符合网页 html代码规范:

  • 网页标题title标签权重最高,其次是h1标签。
  • title和h1标签,每个页面最好只出现一次,出现多次不利权重集中,也可能会被搜索引擎惩罚。

由于很多 WordPress主题,通常是在 header 头部的 logo 中,添加 h1标签。

同时,文章内页的标题又有 h1标签,这样会出现 2 次 h1标签,该如何让每个页面,只出现 1 次 h1标签呢?

我在优化陈沩亮博客的过程中,也有遇到此类问题,解决方法可根据本身WP主题的情况,参考以下代码做修改:

修改方法1

将 header.php 文件里的代码 ▼

<hgroup class=”logo-site”></hgroup>

用以下代码替换,即可解决 ▼

<? php 
if (is_home()) {
 echo '<h1 class="site-title">';
}else{
 echo '<div class="h1_logo" >';
}
?>
 <a href="/"><img src="<?php bloginfo('template_url'); ?>/img/logo.png" alt="<?php bloginfo('name');?>" title="<?php bloginfo('name');?>" /></a>
<?php 
if (is_home()) {
 echo '</h1>';
}else{
 echo '</div>';
}
?>
  • is_home() 函数判断若是首页,就显示h1标签,若不是首页就显示div标签。

(由于不是每个WP主题代码都一样,假如修改方法1不适用,请参考以下修改方法2

修改方法2

WP首页和分类页判断函数说明 ▼

if ( is_front_page() || is_category() || is_home() ) : ?> 
  • is_front_page 和 is_home 表示如果是首页。
  • is_category 表示如果是分类页。

因为只需要首页 logo 出现 h1标签,其它页面不需要有h1标签。

以下是删除掉 is_category() ||之后的代码 ▼

<? php if (zm_get_option("logo_css")) { ?>
 <div class="logo-site">
 <?php } else { ?>
 <div class="logo-sites">
 <?php } ?>
 <?php
 if ( is_front_page() || is_home() ) : ?> 
 <?php if (zm_get_option('logos')) { ?>
 <h1 class="site-title">
 <?php if ( zm_get_option('logo') ) { ?>
 <a href="<?php echo esc_url( home_url('/') ); ?>"><img src="<?php echo zm_get_option('logo'); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" alt="<?php bloginfo( 'name' ); ?>" rel="home" /><span class="site-name"><?php bloginfo( 'name' ); ?></span></a>
 <?php } ?>
 </h1>
 <?php } else { ?>
 <h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
 <p class="site-description"><?php bloginfo( 'description' ); ?></p>
 <?php } ?>
 <?php else : ?>
 <?php if (zm_get_option('logos')) { ?>
 <p class="site-title">
 <?php if ( zm_get_option('logo') ) { ?>
 <a href="<?php echo esc_url( home_url('/') ); ?>"><img src="<?php echo zm_get_option('logo'); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" alt="<?php bloginfo( 'name' ); ?>" rel="home" /><span class="site-name"><?php bloginfo( 'name' ); ?></span></a>
 <?php } ?>
 </p>
 <?php } else { ?>
 <p class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
 <p class="site-description"><?php bloginfo( 'description' ); ?></p>
 <?php } ?>
 <?php endif;
 ?>
  • if ( is_front_page() || is_home() ) : ?>  <?php if (zm_get_option('logos')) { ?>表示若是首页、有logo设置,就显示有 h1标签的 logo。
  • 第1个 <?php else : ?> 表示若无 logo,就显示 “设置” 中的站点标题、副标题(有h1标签)。
  • 第2个 <?php else : ?> <?php if (zm_get_option('logos')) { ?> 表示如果不是首页,就显示无 h1 标签的logo。
  • 第3个 <?php else : ?>表示若不是首页、无logo,就显示 “设置” 里的网站标题、副标题。

添加分类页标题h1代码

如果你的分类页的 logo 不输出 h1标签后,同时分类页模板也没有 h1标题标签的话……

(具体情况,谷歌浏览器请按 CTRL + U 查找网页代码<h1来确定)

第一步:确定分类页,完全没有h1标签,需要在分类页模板,添加 “分类页h1标题” 代码 ▼

<h1 class="cat_title"><?php single_cat_title(); ?></h1>

第二步:在 style.css 文件里,添加分类页 h1标题的CSS样式代码 ▼

h1.cat_title{
 background: #fff;
 text-align: left;
 font: 18px "Open Sans", Arial, sans-serif;
 text-transform: uppercase;
 border-radius: 2px;
 border-left: 10px solid #0373db;
 padding-left: 14px;
 margin: 0 0 8px 0;
 line-height: 2;
}

这么修改后,就能轻松解决,网站 logo有 h1 标签,内页文章、分类页又有 2 个 h1 标签的问题了。

SEO是各种细节优化的成果,要是你能把各种网站代码的各种细节都优化好,网站排名也会在一定程度上有所提升 ^_^