填写您的邮件地址,订阅我们的精彩内容:

WordPress确切真实的判断是否为首页

655

我们在处理wordpress主题的SEO时,顾客常常要求在网站的首页显示链接,而在其他页面不显示链接。如何区别于原来对首页的判断,确切真实的判断网站首页呢?本文将对此进行详解。

在以往的主题撰写中,我们通常用if(is_home() || is_front_page())来确定是否为首页,但令我们感到无助的是,通过这种判断得到的结果是,在首页最新文章进行翻页时也会列出其后的内容。这我们所说的“首页”还是有差别,例如我们在这种情况下,在最新文章的第2页到最后一页都会有链接,那么这些链接就会传递页面的PR值。

我们所说的真正的“首页”即进入网站看到的主页。只有一个页面。判断的方法其实也有很多,不限于本文。例如通过对URI的判断,对界面中某个指定元素进行判断等方法。本文要提供的是一种基于wordpress内部机制的判断方法。废话不多,先上代码:

if ( (is_home() || is_front_page()) && !is_paged() ) {
//输出内容
}

而这种方法的话,只能判断是否为第一页,如果使用上面的代码,那么第二页就不会执行相关的代码。如果我们希望更准确的判断是第几页,以希望在某个特定的页码输出特定的内容,我们可以通过下面的思路来实现。

$current_page = (get_query_var('paged') ? get_query_var('paged') : 1);
wp_reset_query();
if((is_home() || is_front_page()) && $current_page == 1):
...
endif;

代码看上去很简单,里面包含了以下几个知识点:

1、原来的is_home() || is_front_page()判断出是否为home或front_page页;
2、$current_page == 1判断出是否是home或front_page页的第一页,通过$current_page = (get_query_var('paged') ? get_query_var('paged') : 1);确定它,如此之后,经过翻页的页面就被排除出局;
3、为什么要使用wp_reset_query();?因为要使用is_home() || is_front_page()进行判断,如果不用wp_reset_query();放在前面,有可能会出错。

如此一来,你便可以确定所要实现的功能确实是在首页了。

下面我简单说几句