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

我们在处理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();放在前面,有可能会出错。

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

0

评论0

请先

没有账号? 注册  忘记密码?

社交账号快速登录