威言威语
我愿像茶,苦涩留心,清香予人。
威言威语
当前位置: 首页 > 设计 > 正文

WordPress友情链接wp_list_bookmarks的显示方式

自定义WordPress友情链接的显示方式,wp_list_bookmarks函数和get_links函数的分析及其应用。
WordPress友情链接wp_list_bookmarks的显示方式

有人问我怎么实现类似我博客的友情链接显示方式,就是只有部分显示在首页,而其他的则没有,而是显示在了博客链接页面了。

其实这个很简单,稍稍对链接加点定义就可以实现这样的效果,wp_list_bookmarks函数和get_links函数。

现在更多的人使用的wp_list_bookmarks函数吧,因为他更加的强大,他的参数设置比较的自由,而不像get_links函数有个特定的语句。

有很多人只想要结果,却不愿看看是如何实现,然后冠上一个我不懂代码了事。其实只要稍稍看一下,不懂代码的人也完全可以实现想要的链接显示效果,今天我们说的不是链接显示的样式,而是究竟怎么显示我想显示出来的链接,比如我首页只想显示一部分置首页的链接,而不是全部,由于链接分类的ID不一样,所以很多主题都是显示全部链接,这也导致了很多人想修改原主题链接显示的模式。

以我博客首页底部的置顶链接为例,首先,你要建链接分类,比如置首页的分一类,其他的再分一类。然后查看他们的分类ID。点击分类的标题,进编辑页面,浏览器上面的链接在最后类似“cat_ID=2”的,则2就是这个分类的ID。

那么我单独调用则可以写成

<?php wp_list_bookmarks('orderby=id&categorize=0&category=2&title_li='); ?>

他的意思是显示分类为2的链接,以链接的ID排序,并且不显示链接分类目录名。

同样的用get_links函数则可以写成

<?php get_links(2, '<li>', '</li>', '', TRUE, 'id', FALSE); ?>

我之前用的get_links函数,现在都换成了wp_list_bookmarks 函数。

比如我先按分类显示所有友情链接,类似我博客链接页面。

<?php wp_list_bookmarks('orderby=id&category_orderby=id'); ?>

他的意思是显示所有友情链接,链接分类按ID排序,并且显示链接分类目录名。

如果使用的参数较多,可以使用下面的写法,这样看起来比较清晰。


<?php wp_list_bookmarks (
	array (
		'categorize' => '1',	//链接分类:1显示,0不显示
		'category_orderby' => 'id',	//链接分类排序,可用:name、id、slug、count
		'show_name' => '1',	//链接名称:1显示,0不显示
		'show_images' => '1',	//链接图片:1显示,0不显示
		'show_description' => '1',	//链接描述:1显示,0不显示
		'category_before' => '',
		'category_after' => '' ,
		'title_li' => __('Bookmarks'),
		'title_before' => '<h2 class="links-title">',
		'title_after' => '</h2>',
		'before' => '<li class="links-item">',
		'after' => '</li>',
		'between' => '',
		'link_before' => '<span>',
		'link_after' => '</span>',
		'orderby' => 'link_id',	//友情链接排序,可用:link_id、rand、url、name、target、description、owner、rating、updated、rss、length 等
) ); ?>
</div>

他的意思是显示所有可见友情链接,链接分类按ID排序,并且显示链接分类目录名,同时显示链接标题、图片、描述。在友情链接列表的标题前后添加h2标签,友情链接的排序方式是链接的id。

如果要用get_links函数写的话,想实现这样的效果就复杂一些了,要一个分类一个分类的写,分类很多的话,写的代码就很冗余了,所以还是wp_list_bookmarks函数来的更加方便。

其实你把函数中参数的意思看明白的话,想写出什么样的链接显示方式都是可以的,重要的还是大家的发挥,符合自己的才是最好的。

=======================华丽的分割线=======================

以下来自网络,作者不详。

wp_list_bookmarks 函数的默认参数是:


'orderby' => 'name'
'order' => 'ASC'
'limit' => -1
'category' => ''
'category_name' => ''
'hide_invisible' => 1
'show_updated' => 0
'echo' => 1
'categorize' => 1
'title_li' => __('Bookmarks')
'title_before' => '<h2>'
'title_after' => '</h2>'
'category_orderby' => 'name'
'category_order' => 'ASC'
'class' => 'linkcat'
'category_before' => '<li id="%id" class="%class">'
'category_after' => '</li>'

下面我来一一介绍每个参数的用途:

categorize

布尔型,用于设置连接是否按照各自的分类显示:

1 (默认,根据链接的分类显示)

0 (不按照分类,显示全部)

category

字符串型,后面就直接 “=链接分类ID号”,那么就显示这个分类下的链接。如果没有指定的话就显示所有的链接。

exclude_category

字符串值,默认为空

要排除的友情链接分类ID,多个ID用逗号分隔,默认不排除任何分类。

category_name

字符串型,如果后面 “=某个链接分类的名称” 那么就会在该链接分类前显示分类的名称,如果这里留空的话则会显示所有链接分类的分类名称(即默认的形式)。

category_before

字符串型,位于链接分类之前的文字或代码。默认的设置是:<li id="[category id]">

category_after

字符串型,位于链接分类之后的文字或代码。默认的设置是:</li>

class

字符串型,每一个链接的分类都会有一个 “class” 属性(从上面的代码就能看出),默认是:linkcat

category_orderby

字符串型,链接分类的排序方式,默认值:name。

友情链接的分类排序


name:以友情链接分类名称排序
id:以友情链接分类ID排序
slug:以友情链接的分类别名排序
count:以友情链接分类下的链接数量排序

category_order

字符串型,链接分类的升降序排列方式,默认值:ASC

友情链接分类排序顺序

ASC:升序
DESC:降序

title_li

字符串型,链接标题的头文字或代码,默认是:Bookmarks,并且它控制连接是否按照列表的方式排列。

title_before title_after

顾名思义,它们就是连接标题头前后的文字或代码,默认是 h2 标签。当categorize为1时,title_before和title_after指定友情链接分类名称前后的字符,当categorize为0时title_before和title_after没有作用。

show_private

布尔型,是否显示私有链接。

1 (是)

0 (不是 – 默认)

是否显示私密的链接分类,但我在后台并没有找到链接分类的私密设置选项,虽然链接可以设置为私密链接,但show_private的值并不影响私密链接的输出,影响私密链接输出的参数是hide_invisible,下面会介绍。

include

字符串型,输出指定 ID 的 Blogroll 的分类链接,各个 ID 之间用半角的 “,” 分开。默认显示所有的 Blogroll 分类。

exclude

字符串型,将指定 ID 的 Blogroll 分类链接从整个链接列表中排除,各个 ID 之间用半角的 “,” 分开。默认是什么都不排除。

orderby

字符串型,默认值:name。友情链接的排列方式(默认是根据名称排序,除非将这个值留空),即根据我们在 WP 后台链接设置界面下的那些参数来进行排序:


link_id:友情链接的ID
url:按链接的URL排序
name:友情链接的名称
target:按“目标”设置排序
description:按描述排序
owner:按添加链接的用户排序
rating:按评分排序
updated:按更新时间排序,由于这个更新时间并不是指本地修改的时间,而是基于pingomatic的更新,一般这个时间都是:0000-00-00 00:00:00,所以按updated排序没有任何意义。
rel:按链接关系(XFN)排序
notes:按备注排序
rss:按RSS地址排序
length:按链接名称的长度排序
rand:随机排序

order

字符串型,设置升降序的排列方式

ASC (默认)

DESC

limit

整型,设置输出链接条数的最大值。默认值是”-1″,输出全部。

between

字符串型,每个连接、图片和描述之间的文字或代码,默认是 “n” 换行。

show_images

布尔型,是否允许显示 Blogroll 下链接的对应图片。

1 (允许 – 默认)

0 (不允许)

show_description

布尔型,是否允许显示每个链接的描述。

1 (允许)

0 (不允许 – 默认)

show_name

布尔型,是否显示链接的名称。

1 (允许)

0 (不允许 – 默认)

show_rating

布尔型,是否允许显示链接的等级。

1 (允许)

0 (不允许 – 默认)

show_updated

布尔型,是否允许显示最近更新后的时间戳。

1 (允许)

0 (不允许 – 默认)

hide_invisible

布尔型,是否显示所有的链接,甚至是被管理员设为不可见的链接,默认允许显示。

1 (允许 – 默认)

0 (不允许)

echo

布尔值,默认值:1

是否输出结果,如果为0,只返回结果而不输出。

==========================================================

get_links 函数的参数:


get_links(category, 'before', 'after','between', show_images, 'order',show_description,show_rating, limit,show_updated, echo);

其中catagory为友情链接显示模式;before为显示在友情链接前端参数,after为后;between为每条友情链接之间的参数。show_images是否显示Logo,order排列方式;show_description显示链接描述,show_rating显示等级,limit显示链接个数,show_updated显示最后一次更新时间。

order是按照什么排序,可以包括:


'id'
'url'
'name'
'target'
'category'
'description'
'owner'  - User who added link through Links Manager.
'rating'
'updated'
'rel' - Link relationship (XFN).
'notes'
'rss'
'length' - The length of the link name, shortest to longest.

<?php get_links('2', '<li>', '</li>', '<br />', FALSE, 'id', FALSE, FALSE, -1, FALSE); ?>

意思是显示分类ID为2的链接,以链接的ID排序,不显示链接的Logo,不显示链接的描述,不显示等级,分类2下的链接全部显示,不显示最后一次更新时间。把上面的2换成-1则是显示全部链接。

这个的缺陷就是不能显示链接分类目录名,要自己添加,而wp_list_bookmarks 函数就不需要这么做,正因为这样的方便,wp_list_bookmarks 函数取代get_links 函数就理所当然了。

好了,其他的就靠CSS去控制了,当然更重要的是大家写出符合自己的友情链接显示方式才是王道。

您可能还会对这些文章感兴趣!

WordPress友情链接wp_list_bookmarks的显示方式:目前有 92 条评论

  1. 破小懿
    56楼
    破小懿:Google Chrome 39.0.2171.99 Windows XP

    :cool: 搞定了,感谢

    2015-02-12 23:07 回复
  2. 梦轩丽人
    55楼
    梦轩丽人:Google Chrome 21.0.1180.89 Windows XP

    很详细的介绍,博主非常用心分享!

    2014-07-17 17:43 回复
  3. RMBer
    54楼
    RMBer:Firefox 27.0 Windows XP

    不知道有没有链接样式

    2014-03-15 13:56 回复
  4. 花少
    53楼
    花少:Google Chrome 28.0.1500.71 Windows 7

    用了,很给力 :cool:

    2013-08-15 20:42 回复
  5. 小强文摘
    52楼
    小强文摘:Google Chrome 24.0.1312.52 Windows 7

    不错,谢谢威老师分享,有时间试试

    2013-01-29 11:51 回复
  6. 随意博客
    51楼
    随意博客:Internet Explorer 8.0 Windows XP

    讲的很全面,顶你! :cool:

    2012-10-29 01:47 回复
  7. Lanfox
    50楼
    Lanfox:Internet Explorer 9.0 Windows 7

    我想把友情链接象你的一个显示成https://www.weisay.com/blog/link
    我怎么弄都弄不了..可以教一下我怎么生成link这个目录吗?

    2012-06-09 21:59 回复
  8. chanbee
    49楼
    chanbee:Internet Explorer 9.0 Windows 7

    我想友情链接横着显示怎样实现呢?不想竖着显示

    2012-03-13 14:43 回复
  9. 橄榄油
    48楼
    橄榄油:360安全浏览器 Windows XP

    还没弄明白,有点难呀

    2012-03-03 05:07 回复
  10. 朱定聪
    47楼
    朱定聪:Google Chrome 17.0.963.6 Windows XP

    :wink: 通过函数实现呀~~!

    2012-02-25 04:49 回复
  11. 五月兰
    46楼
    五月兰:360安全浏览器 Windows Vista

    额,有点晕啊。。。。 :?:

    2012-02-12 21:29 回复
  12. iHoter
    45楼
    iHoter:Internet Explorer 9.0 Windows 7

    :grin: 这个很有用,记下了。

    2011-12-13 10:42 回复
  13. 象牙塔
    44楼
    象牙塔:Internet Explorer 8.0 (Compatibility Mode) Windows XP

    学习了 ,好东西呀

    2011-12-09 18:14 回复
  14. 上山若水
    43楼
    上山若水:360安全浏览器 Windows 7

    向博主学习了,谢谢

    2011-11-24 22:36 回复
  15. Robin
    42楼
    Robin:Internet Explorer 8.0 Windows XP

    :?: 有个小问题 那个between是不是只有默认/n换行啊 博主主题里用了title_li最终的形式 但是看看您的源码 标签都是换行的 能不能不换行啊 就像连续下来的 试了很多方法不行 虚心求教!

    2011-11-13 22:43 回复
    • William
      WilliamGoogle Chrome 15.0.874.120 Windows 7

      @Robin你说的是我link页面么?
      那个换行都是通过CSS控制的

      2011-11-13 22:51 回复
      • Robin
        Robin:Internet Explorer 8.0 Windows XP

        @William谢谢 博主 总是在您的博客里发现问题 呵呵 都是自己解决了 希望weisay越走越好…呵呵… :cool: 我也要努力了

        2011-11-15 22:15 回复
  16. 华夏动漫
    41楼
    华夏动漫:360安全浏览器 Windows XP

    没看懂。。

    2011-10-11 14:58 回复

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

gravatar

question razz sad smile redface biggrin eek shock confused cool lol mad rolleyes wink cry