WordPress 按分类显示友情链接
2011-10-27 19:57
274 查看
WordPress 按分类显示友情链接
友情链接仍是网站推广的一个重要手段, 网站之间频繁的链接交换活动使得Links 页面似乎已经成为了每个博客的必须的组成部分. WordPress 系统的 default 主题也自带了这个页面模板 (links.php).我的主题同样带有页面模板, 但为了界面美观和简化处理, 我并没有将这些链接按分类来进行显示. 后来我觉得按分类处理还是有必要的, 不久前我开始在自己博客上做了些相关实验, 貌似网友们也比较喜欢将链接按分类进行显示.
那怎样才能按分类来显示友情链接呢?
咱们先了解一下获取链接列表的方法.请打开 default 主题的 links.php 文件, 它的内容很简单, 调用链接列表的代码如下:
<?php wp_list_bookmarks(); ?>
这句代码将调出所有链接, 并按分类显示出来, 是一个嵌套的列表结构. 关于 wp_list_bookmarks 方法可以参看 wp-includes/bookmark-template.php 的源代码和 Codex 的使用说明.
既然实现如此简单方便, 为什么不使用这个代码来做呢?
因为代码结构不易进行加工, 所以我将所有链接不分类进行处理, 代码如下:<?php wp_list_bookmarks('title_li=&categorize=0&orderby=rand'); ?>
这段代码的意思是: 没有标题, 不进行分类, 链接位置随机安排.
在 iNove 中整个链接框的实现代码如下:
<div class="boxcaption"><h3><?php _e('Blogroll', 'inove'); ?></h3></div> <div class="box linkcat"> <ul><?php wp_list_bookmarks('title_li=&categorize=0&orderby=rand'); ?></ul> <div class="fixed"></div> </div>
那是否可以按照自己的意愿来显示其中一个分类呢?
是可以的! 我们可以通过以下代码只获取属于名字为 'firend' 的分类的所有链接:<?php $bookmarks = get_bookmarks('category_name=firend'); ?>
关于 get_bookmarks 方法可以参看 wp-includes/bookmark.php 的源代码和 Codex 的使用说明.
那么我们可以通过下面的代码来显示名字为 'firend' 的分类的链接, 取代显示所有链接.
<div class="boxcaption"><h3>firend</h3></div> <div class="box linkcat"> <ul> <?php $bookmarks = get_bookmarks('category_name=firend'); if ( !empty($bookmarks) ) { foreach ($bookmarks as $bookmark) { echo '<li><a href="' . $bookmark->link_url . '" title="' . $bookmark->link_description . '">' . $bookmark->link_name . '</a></li>'; } } ?> </ul> <div class="fixed"></div> </div>
既然一个可以显示, 是不是所有分类都可以这样显示出来?
当然可以, 现在要想办法把所有链接分类找出来. 为此, 我们可以先看一下数据库中分类的存储结构:可以看出, 我们只需要在 terms 表中出去相应数据元组对应的 name 属性就 OK 了. 所以这里需要通过 term_id 和 terms_taxonomy 表联一下, 并且将 taxonomy 的值限定为 'link_category'. SQL 如下:
SELECT T1.name AS name FROM $wpdb->terms T1, $wpdb->term_taxonomy T2 WHERE T1.term_id = T2.term_id AND T2.taxonomy = 'link_category'
通过以上 SQL 我们可以将所有链接分类的名字找出来, 然后做一个循环处理, 把链接按照分类查找出来, 并置于页面中.
<?php $linkcats = $wpdb->get_results("SELECT T1.name AS name FROM $wpdb->terms T1, $wpdb->term_taxonomy T2 WHERE T1.term_id = T2.term_id AND T2.taxonomy = 'link_category'"); if($linkcats) : foreach($linkcats as $linkcat) : ?> <div class="boxcaption"><h3><?php echo $linkcat->name; ?></h3></div> <div class="box linkcat"> <ul> <?php $bookmarks = get_bookmarks('orderby=rand&category_name=' . $linkcat->name); if ( !empty($bookmarks) ) { foreach ($bookmarks as $bookmark) { echo '<li><a href="' . $bookmark->link_url . '" title="' . $bookmark->link_description . '">' . $bookmark->link_name . '</a></li>'; } } ?> </ul> <div class="fixed"></div> </div> <?php endforeach; endif; ?>
使用 default 主题的处理方法的好处是简单, 方便, 但缺乏灵活性. 对于后一种方法, 需要有些许代码能力才能实现, 但并不是很难. 在决定要使用什么方法前请权衡时间, 能力, 需求等多方面的因素, 不可能尽善尽美, 适合自己就是最好的. 请不要发信请求我帮你修改, 我会在所有主题的下个版本中加入这个功能.
相关文章推荐
- wordpress分类显示友情链接
- 两种方法让WordPress只在首页显示友情链接
- WordPress后台的文章、分类,媒体,页面,评论,链接等所有信息中显示ID并将ID设置为第一列
- wordpress友情链接分列显示的插件下载
- wordpress按层级方式显示分类链接的方法
- DEDE5.7友情链接分类调用代码
- 如何让WordPress首页不显示指定分类的文章
- Jquery二级菜单,鼠标经过显示二级分类,大类和小类都有链接
- 重启wordpress友情链接功能
- wordpress修改固定链接之后 无法访问的解决办法 标签: WordPress 2015-09-24 14:09 223人阅读 评论(0) 收藏 举报 分类: WordPress(6) 本地同
- WordPress中用于获取文章信息以及分类链接的函数用法
- WordPress后台添加友情链接管理功能
- 织梦dedecms内页分类频道友情链接实现方法
- Jquery二级菜单,鼠标经过显示二级分类,大类和小类都有链接
- 详解wordpress友情链接函数wp_list_bookmarks
- 如何实现WordPress分类目录双列显示
- dedecms友情链接实现图片文字链接都显示的方法
- POSCMS 后台友情链接增加所属栏目分类功能
- 新版wordpress友情链接消失说明:如何激活链接管理功能
- wordpress显示多个分类的文章