让侧边栏列表一分为二

Jan 15th, 2008 Add Comment
wordpress blogroll

如左图, 将测边栏列表分两半, 灵感来源于 Eric Liu.

我是用 JavaScript 来实现的, 其实很简单.
以下是我的思路:

1. 在加载页面的时候进行调整, 但要求 JavaScript 加载失败时不要影响页面布局, 所以 style 控制也应该写在 JavaScript 里面.
2. 以 Blogroll 为例, 获取 Blogroll 的子节点个数, 使两栏中节点个数相等 (奇数时左栏多一).
3. 移除左栏的最后一个节点, 并将它作为第一个节点加到右栏, 直到 "左栏节点个数 - 右栏节点个数 <= 1".

下载请点: (该文件不再提供下载, 此功能可由插件 WP-MulticolLinks 实现.)

使用:
1. 进入你的模板目录, 新建目录 js (如果没有的话), 将文件 sidebarlistmanager.js 拷贝到这个目录.
2. 打开文件 header.php, 在 <head></head> 里面, 追加如下:
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/sidebarlistmanager.js"></script>
3. 打开文件, sidebar.php, 修改代码, 新增如下粗体部分, id 可以自己取名.
<div class="sidebox">
    <h3>Blogroll</h3>
    <ul id="blogroll_left" class="post-list">
        <?php wp_list_bookmarks('title_li=&categorize=0'); ?>
    </ul>
    <ul id="blogroll_right" class="post-list">
    </ul>
    <div stylt="clear:both"></div>
</div>
4. 打开文件 sidebarlistmanager.js...
(1)修改 list1.style.width 和 list2.style.width 的数值为你需要的, 百分比也可以, 如 "100px", "49%";
(2)将最下面的 sidebarListManager("blogroll_left", "blogroll_right"); 里面的参数替换成你自己定义的, 如果需要再更改一个 list, 则追加一行.

声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: 让侧边栏列表一分为二

  1. http://1.gravatar.com/avatar/9b3a2db714e6fe8692a5b98d4216e64b?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    这个风格这么多人用呀,看了好多人都在用这个皮!

  2. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    其实这个应该在模板后台控制...
    这模板还是太简陋了, 我要大升级一次才行, 起码要提供 Widgets 和增添风格替换控制.
    被某人说对, 做 WordPress 模板不会 PHP 就只能做到这种程度了.

  3. http://0.gravatar.com/avatar/c41b34b1e8d625d80f7ec8240c403b1f?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    我只研究了一种办法,就是给li设个width,然后float:left;

  4. http://0.gravatar.com/avatar/c41b34b1e8d625d80f7ec8240c403b1f?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    节点?完全不知所云。。

  5. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    好久不见的 AKA...

    我在这要 PS 一下: 我这个方法会打乱 sidebar.php
    如果同学们的模板需要支持 widgets 请勿模仿.

  6. http://0.gravatar.com/avatar/850fda1dbff283e2839d4fea31f8075d?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    介孩儿...老整介深奥的...
    - 3- 恩恩 不过这个点子的确粉有用
    我现在就8稀饭过长的列表

  7. http://0.gravatar.com/avatar/0b8c305e8b312931ee21ca18d79eab35?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    mg12真油菜啊~我那个是定义好css自己在sidebar里敲代码,还是你这个方便呀^^

  8. http://0.gravatar.com/avatar/e1bdf3a548d59e1d98cc812af5363902?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    截图中的莫非是传说中的蓝色经典版? :lol:

  9. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    一大早就给对面工地吵醒... (T-T)

    @Alan:
    这个只是配合 highslide, 将 wp-grins 插件稍微改了一下.
    好像现在 IE 没能显示出来, 找个时间弄弄吧. (- -!)

    @忘月:
    不敢当, 高手是不用敲代码的.

  10. http://0.gravatar.com/avatar/c4e6643ae2a4a07665ae1723450e5e60?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    真是高手啊,佩服。

  11. http://1.gravatar.com/avatar/bc0c69a6bf72455c4abb653a1d70747a?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    你的表情这个框怎么弄的,有空写下教程嘛 :mrgreen:

  12. http://1.gravatar.com/avatar/bc0c69a6bf72455c4abb653a1d70747a?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    不懂,但先收藏 :lol:

  1. Loading...