Archive for the 'Wordpress' Category

WordPress调用分类归档、月份归档样式

博客下方加入了按分类归档和按月份归档的链接表(现在已经删除)。如下图:archive

这是Wordpress主题K2中默认的一种Archive.php模板中的代码,这样的样式不仅方便了用户选择分类目录,也给用户了一个很好的用户体验效果,显示的内容很直观、很整齐。代码片段如下:
CSS样式定义部分:

  1. .archive-list {   
  2.     list-stylenone;   
  3.     margin10px 0 0 0 !important;   
  4.     padding-left0px !important;   
  5.     font-size13px;   
  6.     }   
  7.   
  8. .archive-list li {   
  9.     displayblock;   
  10.     floatleft;   
  11.     margin: 0 10px 0 0 !important;   
  12.     padding2px 0 2px 10px !important;   
  13.     width150px;   
  14.     }   
  15.   
  16. .archive-list li:hover {   
  17.     background-color#EDEDED;   
  18.     }   

PHP代码部分,你可以将其插入任意模板中进行调用。

  1. <h3>分类归档</h3>   
  2. <ul class=“archive-list”>   
  3.     <?php wp_list_cats(‘hierarchical=0&optioncount=1′); ?>   
  4. </ul><br/>   
  5.   
  6. <ul class=“archive-list”>   
  7.     <?php wp_get_archives(‘show_post_count=1′); ?>   
  8. </ul>  

PS: 其中< ?php wp_list_cats('hierarchical=0&optioncount=1'); ?>和< ?php wp_get_archives('show_post_count=1'); ?>分别是分类调用和按月份调用。

WordPress跨站显示RSS

首页的样式是几个Feed集合,都是我网站的RSS输出。这是通过侧边栏中选择RSS,然后直接填写目标站的RSS做到的。

如果你在模板中编辑时想要调用到这个信息,可以通过下面的代码实现Wordpress网站中显示其他网站最新文章等的RSS信息。RSS有个好处就是信息是实时的,更新的速度很快,如果利用的当的话,可以通过显示自己别的站点的最新文章等等,来通过高权重的网站引导搜索引擎蜘蛛,代码如下:

  1. <?php // Get RSS Feed(s)    
  2. include_once(ABSPATH . WPINC . ’/rss.php’);    
  3. $rss = fetch_rss(‘http://clyee.com/blog/feed/’);//在这添加所要调用网站的Feed地址    
  4. $maxitems = 10; //表示显示10篇文章   
  5. $items = array_slice($rss->items, 0, $maxitems);    
  6. ?>    
  7. <ul>    
  8. <?php if (emptyempty($items)) echo ’<li>没有内容</li>’;    
  9. else    
  10. foreach ( $items as $item ) : ?>    
  11. <li>    
  12. <a href=’<?php echo $item['link']; ?>’    
  13. title=’<?php echo $item['title']; ?>’ target=“_blank”>    
  14. <?php echo mb_strimwidth($item['title'] , 0, 80, ‘…’) ; ?>    
  15. </a>    
  16. </li>    
  17. <?php endforeach; ?>    
  18. </ul>  

添加noindex标签到WordPress的/page/页面

相信很多人的网站被搜索引擎收录了大量的/page/页面,如下面的链接,你可以通过Google搜索:“site:yourwebsite.com inurl:/page/”查询你的收录页面是否有这样的结果:

  1. http://clyee.com/blog/page/2/   
  2. http://clyee.com/blog/topics/psychology/page/2/   
  3. http://clyee.com/blog/tag/seo/page/2/  

Homepage主页的Subpages页面是可以通过插件来完成添加noindex,follow的,但是如何添加<meta name=”robots” content=”noindex,follow”>给分类和标签的分页呢? 因为这样的搜索结果对搜索引擎是一点意义都没有。比如Categories或者tag的/page/页面,所以我们采取措施让收索引擎不收录它们。

两种方法 There are two ways.
1.你可以通过robots.txt进行拦截,写法为:

  1. User-agent: *   
  2. Disallow: */page/*  

2.通过php判断url中是否有/page/字符串完成,如/page/2

  1. <?php   
  2. $url = ’http://’.$_SERVER["HTTP_HOST"].$_SERVER['REQUEST_URI'];   
  3. if ((strpos(“$url”,“/page/”)==false))   
  4. { ?>   
  5. <?php } else { ?>   
  6. <meta name=“robots” content=“noindex,follow” />   
  7. <?php } ?>  

* 其中noindex是指不要收录这个页面,follow是指跟踪(即爬行)这个页面上的链接。你也可以选择noindex,nofollow的组合,意思为不收录这个页面,也不跟踪页面中的链接。

第二个方法比第一个方法好在:搜索引擎可以爬行page页面,但是不收录。而不是阻止搜索引擎爬行page页面。

上面的代码通过判断请求页面的URL中是否含有”/page/”这个字段,如果有,就添加标签,如果没有就跳过。添加到header.php中不仅可以判断tag的分页,也可以判断categories的分页。这段代码不仅适用于Wordpress,还可以添加到Typecho等php博客程序的header.php中。

Adding ‘NoFollow’ to WP-PageNavi

我看国外论坛上很注重这样类型的权重流失,不知道为什么在baidu上搜到一个标准答案都没有。这样的page页面都是noindex但是follow的,如果把权重指向这样的链接就是白白浪费。最好的方法就是将这些链接添加上nofollow。关于如何把pagenavi插件的链接加上nofollow标签,具体方法如下:

  1. function _wp_pagenavi_single( $page$class$raw_text$format = ’%PAGE_NUMBER%’ ) {   
  2.     if ( emptyempty$raw_text ) )   
  3.         return ;   
  4.   
  5.     $text = str_replace$format, number_format_i18n( $page ), $raw_text );   
  6.   
  7.     return “<a href=’” . esc_url( get_pagenum_link( $page ) ) . “‘ class=’$class’>$text</a>”;   
  8. }  

在wp-pagenavi/core.php中找到上面的语句。改成下面的语句即可,记住是单引号不是双引号,如果你写双引号的话插件会瘫痪:

  1. function _wp_pagenavi_single( $page$class$raw_text$format = ’%PAGE_NUMBER%’ ) {   
  2.     if ( emptyempty$raw_text ) )   
  3.         return ;   
  4.   
  5.     $text = str_replace$format, number_format_i18n( $page ), $raw_text );   
  6.   
  7.     return “<a rel=’nofollow’ href=’” . esc_url( get_pagenum_link( $page ) ) . “‘ class=’$class’>$text</a>”;   
  8. }  

但是next-page和previous-page的链接还是dofollow的,那怎么办呢,打开wp-includes/link-template.php,找到 ( $max_page, false ),在“< a”的后面加上rel=”nofollow”标签,搜索previous_posts( false ),在他的“< a”的后面也加上rel=”nofollow”标签即可。记住,这里的nofollow外围是双引号。刚才的那个外围是单引号。

共 6 页, 当前第 1 页 12345...最后一页 »