抛弃边栏widget的自动显示
博客最近收到不少博友的交换友情链接的提议,当然只要符合要求都给加上了。慢慢问题就出来了,链接多了导致友情链接这个侧栏widget十分的长,而且因为是多行一列的形式排列,右边却大片空白,不匀称又浪费了空间,而且由于博客主题设定的侧栏比较窄,排成2列的话名称比较长的链接会显示不全,只能通过自己写代码通过字数判断来分类从而2列化,基本想法就是这样。
wordpress有一个十分酷的功能就是后台可以拖拽操作边栏页面的widget,很自由从而插件可以制作自己的widget来方便使用。不过自动化程度再高,都比不上需求变化来得快,因为这一切都由wordpress后台自动为你完成而不是在任何主题和插件的代码中,导致你根本不能修改任何代码,更加不能个性化自己的ideas了。而对于懂得控制wordpress代码的人来说,一块博客上至关重要的区域却不能完全掌控它的代码实现,这是难以容忍的。
抛弃边栏widget的自动显示和后台拖拽吧,通过修改主题自带的sidebar.php来个性化完全由自己掌控的侧边栏!
边栏widget的自动显示由dynamic_sidebar()函数实现,一般默认会在sidebar.php中被调用。别急着把这段代码删了,先去博客页面打开源代码,将一个widget的整个HTML代码框架copy下来,然后就可以自己随意插入想要的widget了,只要修改调用的函数即可。譬如以下一段代码:
1 2 3 4 5 6 | <div class="widget"> <h3>widget名称</h3> <ul> <?php wp_list_categories('title_li=&categorize=0&show_count=1'); ?> </ul> </div> |
每一个不同的的widget只需要复制一下这段代码,修改一下标题和调用的php函数就可以了。
1 2 3 4 5 6 | 类目录:wp_list_categories(),categorize=0 表示不分类别,show_count=1 显示文章数目 标签云:wp_tag_cloud() 连接表:wp_list_bookmarks(),category=num 指定类别的term_id 存档表:wp_get_archives(),show_post_count=1 显示存档文章数量 每个API中不同参数,可以在网上搜索或看API源代码,源代码内一般会有一个数组,里面有参数的名称和默认值 |
这样侧边栏你还只有掌控了一半,因为要实现链接分栏的功能,是不能直接调用wp_list_bookmarks()的,于是继续抛弃wordpress的内置函数吧,自己写!其实就从wp_links表里面读取链接并按照<li>link</li>的形式输出,简单的不能再简单了。期间碰到了一个小问题,链接的类别信息并不是直接存在wp_links表内的,想要得到link与类别相关信息,必须要连接3张表十分复杂,然后发现自己分类的规则简单,可以直接从wp_links表的link_rel属性是me还是friend区分出来。接下去就简单了,将strlen(link_title) > maxSize的链接拎出来放在底下,其余就能乖乖地排成整齐的2排了,最后在css上动一些手脚,就搞定了~
自己动手的感觉十分爽!
自己改代码啥的最有爱了。![:mrgreen:](http://blog.11034.org/wp-includes/images/smilies/icon_mrgreen.gif)
同时很欣慰我的链接还在
哈哈,同感同感。cb的链接我怎么可能会去掉呢![:wink:](http://blog.11034.org/wp-includes/images/smilies/icon_wink.gif)
对Aladd设计量贩铺的右链回访啦..
HOHO.文章挺不错!
赞一个!
欢迎回访! 不介意订阅一下吧~哈哈哈~~见谅!随意~
乐意回访,我猜你是女生?