如果出现<h1>,如何隐藏<h2>

时间:2011-12-22 作者:Lucy

我正在一个WordPress网站上工作,该网站会自动显示h2 在页面上显示页面/帖子的标题。我想手动创建h1 对于某些页面h2 如果h1 出现。

有没有办法做到这一点?

2 个回复
SO网友:Tom

有两种方法可以做到这一点,尽管可以说其中一种比另一种更好。

Use JavaScript (Works, but not optimal)

第一种方法是使用JavaScript。我不喜欢使用这种方法,因为它需要一个web浏览器来执行切换。这对SEO产生了负面影响,因为对于搜索引擎来说,元素仍然存在于文档中。

不过,如果你选择这种方法,下面是你可以做到的。。。

假设页面设置如下:

<h1><?php the_title(); ?></h1>
<h2>Some other text.</h2>
然后,基于jQuery的JavaScript(因为WordPress使用jQuery)将如下所示:

if($(\'h1\').is(\':visible\')) {
  $(\'h2\').hide();
} // end if
通过在标题元素上提供ID或类名,可以使代码更加清晰。例如,假设您将标题元素命名为:

<h1 id="title"><?php the_title(); ?></h1>
<h2 id="alt-title">This is a second title.</h2>
然后,您的JavaScript可能如下所示:

if($(\'#title\').is(\':visible\')) {
  $(\'#alt-title\').hide();
} // end if

Do it on the server-side

更好的方法是在服务器端的模板文件中实际设置它。

例如,您想显示h1 仅在单个帖子或页面上,但h2 在存档页或列表页上。您可以这样做:

<?php if(is_page() || is_single()) { ?>
  <h1><?php the_title(); ?></h1>
<?php } else { ?>
  <h2><?php the_title(); ?></h2>
<?php } // end if/else ?>
这更好,因为处理发生在服务器端,因此提供给请求代理(即搜索引擎或web浏览器)的文档将只看到单个元素。

SO网友:Austin Passy

我在标题中这样做。php文件:

<?php $tag = ( is_front_page() ) ? \'h1\' : \'h2\'; echo \'<\' . $tag . \' id="branding">\'; ?>
</<?php echo $tag; ?>><!-- #branding -->

结束

相关推荐

更改函数.php和.htaccess文件

如果我改变了我的Wordpress网站,我会弄糟吗functions.php 自定义主题的文件?有一次我给它添加了一些代码,它给了我一些PHP错误,我的网站无法访问。幸运的是,这是在网站的早期阶段,所以我刚刚重新安装了Wordpress。所以,我的实际问题是functions.php 文件对任何其他文件或数据库或网站的任何其他部分有任何影响?如果我有备份functions.php 文件,我可以通过FTP来替换这个搞糟的文件吗,或者我必须做些其他事情吗?同样的问题也适用于.htaccess 文件-如果我添加