给WordPress博客添加收藏书签,代码实现

日期: 标签:WordPress教程经验网页设计
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我

这两天在鼓捣给露兜博客添加"社会性网络书签Social Bookmark",也就是文章下面提供给读者收藏分享文章的按钮。网络上提供了很多WordPress插件来实现书签的功能,但是大多数插件也就是提供一段JS代码,其他什么也没有提供,代码的定制性极差。

可喜的是一些网站提供了代码来实现书签功能,这很不错。于是在露兜博客的实验室做了一番测试,结果不是很满意,有些代码已经失效了,而且调用的小图片太多,增加了http连接数,对网站的加载速度有一定的影响。求人不如求己,自己从各大书签网站下载来了最新的代码,经过小小的拼凑,再用上CSS Sprites技术,把这些小图片整成一张,速度明显上来了。另外还对代码做了优化,通过W3C验证。

 

下图是制作成功的书签效果,或许在本文下方看到的能给你更深的体验:

书签效果

 

好东西不能独享,下面就来分享一下这个书签收藏按钮的制作过程。很简单。

  1. 打开你的WordPress主题文件夹下single.php
  2. 找到<?php the_content(); ?>,在下面加上以下代码(就是书签的显示位置,或者放到你觉得合适的地方):
  3. <div id="soucang">
    <strong>
    	<span style="color:#9932CC">收藏</span><span style="color:#57c200"> & </span>
    	<span style="color:#9932CC">分享</span>
    </strong>
    
    <ul>
    <li id="kaixin">
    	<a href="http://www.kaixin001.com/repaste/share.php?rtitle=<?php echo urlencode($post->post_title);?>&rurl=<?php echo urlencode(get_permalink($post->ID));?>&rcontent=<?php $desc = strip_tags($post->post_excerpt); echo urlencode($desc); ?>" title="转贴到开心网" rel="nofollow"><span></span></a>
    </li>
    
    <li id="jiudian">
    	<a title="推荐到九点" href="http://www.douban.com/recommend/?url=<?php echo urlencode(get_permalink($post->ID));?>&title=<?php echo urlencode($post->post_title);?>" rel="nofollow"><span></span></a>
    </li>
    
    <li id="douban">
    	<a title="推荐到豆瓣" href="http://www.douban.com/recommend/?url=<?php echo urlencode(get_permalink($post->ID));?>&title=<?php echo urlencode($post->post_title);?>" rel="nofollow"><span></span></a>
    </li>
    
    <li id="yahoo">
    	<a title="雅虎收藏" href="http://myweb.cn.yahoo.com/popadd.html?url=<?php echo urlencode(get_permalink($post->ID));?>&title=<?php echo urlencode($post->post_title);?>" rel="nofollow"><span></span></a>
    </li>
    
    <li id="google">
    	<a href="http://www.google.com/bookmarks/mark?op=edit&bkmk=<?php echo urlencode(get_permalink($post->ID));?>&title=<?php echo urlencode($post->post_title);?>" title="Google书签" rel="nofollow"><span></span></a>
    </li>
    
    <li id="baidu">
    	<a href="http://cang.baidu.com/do/add?it=<?php echo urlencode($post->post_title);?>&iu=<?php echo urlencode(get_permalink($post->ID));?>" title="百度搜藏" rel="nofollow"><span></span></a>
    </li>
    
    <li id="qq">
    	<a href="http://shuqian.qq.com/post?from=3&title=<?php echo urlencode($post->post_title);?>&uri=<?php echo urlencode(get_permalink($post->ID));?>" title="收藏到QQ书签" rel="nofollow"><span></span></a>
    </li>
    
    <li id="vivi">
    	<a href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(vivi=window.open('http://vivi.sina.com.cn/collect/icollect.php?pid=www.ludou.org&title='+escape(d.title)+'&url='+escape(d.location.href)+'&desc='+escape(t),'vivi','scrollbars=no,width=480,height=480,left=75,top=20,status=no,resizable=yes'));vivi.focus();" title="保存到爱问ViVi收藏夹"><span></span></a>
    </li>			
    
    <li id="bolaa">
    	<a href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(blog=window.open('http://www5.bolaa.com/CommendBlog/SmallLogin.aspx?title='+escape(d.title)+'&newspath='+escape(d.location.href)+'&subtitle='+escape(t),'bolaa','width=400px,height=400px'));blog.focus();" title="推荐到博拉"><span></span></a>
    </li>
    
    <li id="poco">
    	<a href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://my.poco.cn/fav/storeIt.php?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t)+'&img=http://www.h-strong.com/blog/logo.gif','keyit','scrollbars=no,width=475,height=575,status=no,resizable=yes'));keyit.focus();" title="收藏到POCO网摘" rel="nofollow"><span></span></a>
    </li>
    
    <li id="hexun">
    	<a href="javascript:t=document.title;u=location.href;e=document.selection?(document.selection.type!='None'?document.selection.createRange().text:''):(document.getSelection?document.getSelection():'');void(open('http://bookmark.hexun.com/post.aspx?title='+escape(t)+'&url='+escape(u)+'&excerpt='+escape(e),'HexunBookmark','scrollbars=no,width=600,height=450,left=80,top=80,status=no,resizable=yes'));" title="转帖到和讯网摘" rel="nofollow"><span></span></a>
    </li>
    
    <li id="delicious">
    	<a href="http://www.delicious.com/post?url=<?php echo urlencode(get_permalink($post->ID));?>&title=<?php echo urlencode($post->post_title);?>" title="deliciou" rel="nofollow"><span></span></a>
    </li>
    
    <li id="xianguo">
    	<script charset="utf8" type="text/javascript">
    	cT="0";nc="#444";nBgc="";nBorder="#F5E5A9";tc="#649B00";tBgc="#FFF4D0";tBorder="#F5E5A9";tDigg="%E6%8E%A8%E8%8D%90";tDugg="%E5%B7%B2%E8%8D%90";defaultItemUrl="WEB_URL";defaultFeedUrl ="http://feed.feedsky.com/ludou";
    	</script>
    	<script type="text/javascript" charset="utf8" src="http://re.xianguo.com/api/diggthis.js"></script>
    </li>
    </ul>
    </div>
  4. 注意将上面代码中www.ludou.org网址改成你的,接着在你的WordPress主题CSS文件中加入以下代码:
  5. #soucang {
    	margin:15px auto;
    }
    #soucang ul {
    	display:inline;
    	position:absolute;
    }
    #soucang li {
    	list-style:none;
    	float:left;
    	margin-right:10px;
    	display:block;
    }
    #soucang li a span {
    	/*请将下面的 http://example/m.gif 改成你自己的图片链接*/
    	background:url(http://example/m.gif) no-repeat;
    	display:block;
    	height:16px;
    	width:16px;
    }
    #soucang li#baidu  a span { background-position: 0 0; }
    #soucang li#bolaa a span { background-position: 0 -17px; }
    #soucang li#delicious a span { background-position: 0 -34px; }
    #soucang li#douban a span { background-position: 0 -85px; }
    #soucang li#google a span { background-position: 0 -102px; }
    #soucang li#hexun a span { background-position: 0 -119px; }
    #soucang li#jiudian a span { background-position: 0 -136px; }
    #soucang li#kaixin a span { background-position: 0 -153px; }
    #soucang li#poco a span { background-position: 0 -187px; }
    #soucang li#qq a span { background-position: 0 -204px; }
    #soucang li#vivi a span { background-position: 0 -221px; }
    #soucang li#yahoo a span { background-position: 0 -238px; }
    #soucang li#xianguo {margin-left:10px; padding-bottom:5px;}

上面的代码使用了CSS Sprites技术,其中#soucang li a span的背景图片是放在我的相册上,你可以点这里下载,放到你的网站目录下,将http://example/m.gif修改成你自己的图片地址就可以了。另外,如果上面的CSS布局不适合你的博客,可以自己改改啊。

好了,到此就大功造成了。看着这些各色各样的书签按钮,感觉是不是很不一样呢?其实这些书签对网站的美化也有一定的帮助作用哦。有事没事,在此留个言吧。

因为网页的宽度有限,这里只提供了16个主流的书签按钮,其他的可以根据自己的需要自行添加,下面提供其他的书签代码及logo下载,并非我原创。把上面提供的代码看明白了,自己添加也不是什么难事了。

下载此文件

-- 完 --

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜即刻 https://www.ludou.org/wordpress-bookmarks.html
露兜
kaapass@outlook.com  QQ 825533758

业余编程爱好者。

15 条留言

点此留言
  1. mosky mosky

    哈哈,昨天的请求,今天就发表成文章,支持下,再这在请教你两个问题:
    1.你展示代码使用的什么插件
    2.侧栏的文章归档时怎么实现的

    • Ludou

      @mosky 回复@mosky
      先别臭美!文章是在你发表评论之前发布的。

      代码用插件:SyntaxHighlighter
      不过它调用就是比较多

      侧栏的文章归档:WP-EasyArchives
      测试了一下,好像不支持WordPress 2.8.4

      • mosky mosky

        @Ludou 晕,等等吧

  2. freehao123 freehao123

    好像也可以使用代推插件也挺不错的

  3. Ludou

    回复@freehao123
    各有所好吧。

  4. keelii keelii

    不错的。用上了,不过那个列表的右间距大了些我改成了5px感觉好很多哦。

    • Ludou

      @keelii 嗯,这个CSS是根据我的博客设计,不一定适合每个人,自己动手改改收获会更多啊。

  5. 美丽西安 美丽西安

    这个很不错,收藏了

  6. ssbsb ssbsb

    为什么我放到博客上右边距一定要调整成负的才不会超出边框
    但是负数会导致图标的链接失效 点击图标就没反应了
    博主能帮帮我么?用的是inove.1.4.6主题

    • Ludou

      @ssbsb 可能是因为你的页面宽度太窄了。
      你可以考虑去掉一些网摘的图片,以缩减长度。

  7. flox flox

    博主的代码高亮是SyntaxHighlighter么?

    • ludou

      @flox 是的,不过有点速度有点慢!

  8. 淘好 淘好

    这个很不错!

    • Ludou

      @淘好 不过,有些链接已经失效了,没太多时间更新,看着改改再用吧

发表留言