因为不方便使用,改了一下插件Yskin’s Table of Contents Generator。主要是增加了后台面板,提供了一些可供选择的地方。再不一定要按Yskin的方式:在文章右上角输出一个javascript形式的”Table Of Contents”。表格标题也变得可以修改。
插件下载地址如下:toc。
另外为了一些不方便上传插件的朋友,还为模板提供了支持的方式。先下载:toc-for-theme,解压后的php文件放在模板文件夹里,再在functions.php中加上一句:“if( file_exists(TEMPLATEPATH . ‘/toc-for-theme.php’) ) include_once(TEMPLATEPATH . ‘/toc-for-theme.php’);”。这样可以做到最小程度的修改模板文件。
合理的组织文章内容是很有必要的,特别是对于比较长的文章。我觉得TOC还有可以改进的地方要:
1、还可以有更多风格可以选择。例如,可以加进JavaScript。
2、可以有更多标记用,TOC标记做默认标记,用TOC-X可以选择其它风格。
有任何想合作开发的请留言。
几种不同样式的截图:
在优博有一个Yo2Mass插件,可以把所关注的或好友的Feed文章聚合到自己的博客页面上。功能很酷,但是这个插件需要模板一定的配合,大多数模板在显示Yo2Mass的时候都不行。我不清楚Yo2Mass具体是怎么工作的,但是我通过“黑盒测试”得到一些结论。可以依此修改模板,来适应Yo2Mass。
首先确定是Yo2Mass调用哪个文件来输出的。oneoo说是调用的“index.php”,没有“index.php”就调用“archive.php”。其实它优先调用的是“single.php”。
“single.php”是我们用来输出单篇日志的,有的人还用在这个文件里加入了Google Ads。用它来输出Yo2Mass显示很乱,或者有的模板可能只显示一条RSS。那么我们如何控制Yo2Mass?
在打开Yo2Mass页面的时候,我分别用is_single()、is_archive()、is_home()判断。发现is_single()和is_archive()都返回true。在正常的WordPress工作状态下不可能出现这种情况。因此,可建立一个is_yo2mass()函数来判断当前是否是Yo2Mass页面。函数如下:
<?php
function is_yo2mass(){
$yo2mass = is_single()&&is_archive();
return $yo2mass;}
?>
把它放在function.php下就可以使用了。要注意:is_yo2mass()函数的判断必需在is_single()和is_archive()之前,否则在is_single()和is_archive()处就已经分支跳转了。另外,也要在is_tag()和is_category()之前,因为在标签页和分类页is_archive()也返回true。
有了这个函数我们就可以方便的控制Yo2Mass页面了。比如,在进入single.php的时候用is_yo2mass()实现分支结构,运行专门用于输出yo2mass的代码。还可以控制Yo2Mass页面的title标签等:
<?php if( is_yo2mass() ) : ?>
<title>Yo2Mass</title>
<?php endif; ?>
yo2的升级和前几次一样,又是一次大shift。其困难人家说了,要重新生成所有博客页面,也就是重新建立一个大型网站。随着时间往更久远,博客数更增加,日后的升级可能要用更多的CPU时间。
升级初,可以访问页面,但是不让进后台——就是不让改东西(后台忙,修改的请求没功夫理)。那候Tag、Category、Bookmark并没有读到,而且一升级有些插件也没了,让我依赖插件的页面乱了一阵子。
后来重新启动了插件,又批量更新了标签,目的是希望数据库能连上,要不然所有文章都没了Tag和Category。但是问题更严重了。现在除了主页和后台,其他页面什么也打不开。一直持续。难道页面缓存还没建立?那也不至于我的一个页面都没建立吧!文章全部没了标签,没了分类,也拉不到bookmarks。数据库是连不上还是毁了?不是做好备份才升级的吗?
如果数据库连不上的时候建立了缓存,等数据库连上的时候是不是又要重新生成缓存?前后台数据能一致吗?我这里数据库都不对,不知道能不能回到正常。
yo2的服务器结构是不是有缺陷。yo2的优点自不必说,页面缓存,加速访问。不过在我用户的角度看,保证页面的访问速度的在自然不过的事,你用的什么技术手段我也不懂,也不想懂。你所谓的页面缓存加速,无非是想减少后台服务器的负担。没有绝对完美的结构。yo2这样改啊改wordpress的,会不会有一天越改越远,等到某次wordpress升级后发现和yo2的服务器架构完全不一样了?yo2页面的生成,在我从外行看,是不同种类的页面用的不同的机器,数据库也被划分了。这种分割方式不是以用户为单位——多少多少个用户用哪台服务器支持,而是把wordpress解剖了。
yo2能不能结合一下以用户为单位划分。加上付费用户是yo2的一大收入依靠,而且其“身份地位”相对特殊(不带歧视),也适合以用户为单位划分。单纯的把wordpress解剖,正如有些人所说的,给改成了“阉割版”的WordPress。
oneoo真是效率,Tag、Category、Bookmark说好了就好了……
如果你的谷歌浏览器flash插件下载很慢,或者根本不开始,可以试一下这个安装包:
Flash_Player_For_Chrome
这个导航菜单昨天基本上搞定。截个图在下面:
同样是从什么都不知道开始摸索,所以觉得自己其实还是有点小聪明的 今天先表达我对默认模板不喜欢的地方:就是打开单篇文章的时候头部会出现附近两篇文章的链接。我觉得这不好,会破坏文章的整体性,因为通常这两篇文章和所阅读的 文章除了位置上相邻以外内容上基本没多少联系。不过也有关于修改模板的文章专门介绍如何添加这两个链接,可是我觉得那也得看模板就具体情况而定。至少我觉得默认模板的这个地方有些时候就不大合适。于是我重新下了个默认模板(下一个wordpress就可以得到)开始了我的修改。
找到这两个链接的代码并删掉很快就可以搞定。不过默认模板不支持侧边栏插件。不能使用侧边栏插件那多不爽。所以又花了些时间修改让它能够支持侧边栏。关于如何修改我在上一篇文章上讲过。但是后来又发现没有了这两个链接页面略显单调,基本上就没有到其他地方的链接了。所以加上了这个菜单。这些菜单都是我站内的页面。
至于菜单是怎么加的,大家只要知道“wp_list_pages();”这个函数就很简单了。这个函数的功能就是输出页面链接。输出的格式是:
<li class=”page_item”><a href=”page-url” title=”page-title”>page-name</a></li>
<li class=”page_item”><a href=”page-url” title=”page-title”>page-name</a></li>
……
你可以用
“
<ul> wp_list_pages();</ul>
”
,这样就可以把<li>表情包在<ul>标签内了。不过这样输出的格式是竖排显示的链接,侧边栏上就是这样的格式。想让它横排显示就在
属性上加上“float: left;”就可以了。至于更多的CSS知识就去百度或google上去看吧,我其实啥都不懂,也是在网上看的 。“wp_list_pages();”还可以加上参数。“title_li=’”参数可以让它不显示那个“Pages”,如果是“title_li=’×××’”就显示×××,其中×××可以包含标签。“sort_column=menu_order”参数可以让它支持Page Order插件。“depth=1”可以让它只显示一层目录。多个参数之间要加上&,例如:<?php wp_list_pages(‘depth=1&sort_column=menu_order&title_li=’); ?>。OK,大功告成!这点文字只是启发性的东西,如果你想自己动手做肯定会遇到很多不会的地方。 除非你是内行。国内研究wordpress的人好像很少,不然我想要一点点wordpress帮助怎么在网上那么难找呢?这些东西最后都是最后在wordpress帮助文档上找到了更为详细的描述。不过英文看得就是头痛,还是希望能找到更多的中文帮助。要是国内甚至引导起了wordpress的潮流就更好了。
终于找到了让wordpress模板支持侧边栏插件Sidebar Widgets的方法。发现其实很简单、很幼稚。在Sidebar Widgets的README文件里面早就做了详细说明。不过说明是英文,没有找到中文版。想支持Widgets一般只要修改两步就够了:
首先,打开模板中的sidebar.php文件。在开头的”<div id=”sidebar”><ul>”后面加上一句:<?php if ( function_exists(‘dynamic_sidebar’) && dynamic_sidebar() ) : else : ?>。然后在文件最后”</ul></div>“之前加上”“就OK了。这时候你也可以试一下,也许不用进入下一步就已经成功了。
如果经过上一步还不行,那么请再打开functions.php文件。在第一句话后面加上<?php if (function_exists(‘register_sidebars’)) register_sidebars(1); ?>。当然也不一定要在第一句话后,如果你懂得一点点代码的话。
一般的模板经过这两步修改就成了。如果你的模板有些特殊可以参考README的后半部分。其实这篇文章是有些多余的,但是在百度和google上都很难找到怎样修改模板让它支持自定义侧边栏的中文或英文文章。发现这两步,很惭愧,还的确花费了我不少心血。所以记在这里也许会有用。
以上内容发布于2007年06月27日,下面是2009年6月15日的一些更新和补充:
使用侧边栏主要依赖两个函数register_sidebars()和dynamic_sidebar()。前者注册边栏,后者显示边栏。这两个函数的具体功能我己分别说明。
注册边栏类似于插件功能,应该在functions.php文件中进行。
侧边栏在2.7之后实际上不应该再叫侧边栏,应该叫小工具,它也可以在页面顶部,或者页尾。
使用多个边栏是很方便的事,可以在不同页面使用不同的边栏。
既然边栏插件2.7以后已经集成到了WordPress,用function_exists一下似乎变得没有必要。
一直使用yo2提供的默认的链接结构:/articles/%postname%.html。这个链接按照yo2的想法是经过seo优化过的。这种链接可使连接中包含关键词,提高搜索引擎的排序。唯一就是链接有点过长了,不过可以通过文章缩略名来减小链接长度。文章缩略名可以直接使用英文关键词。
这样一直觉得这个结构很好,没有什么缺点。不过最近感觉了它的一个弱点。有好几次,为了做点内容并提供方便简短的地址供认朋友访问,我不得不去新建一个页面,这样就可以把那个/arhtcles/搞掉了。但是wordpress新建太多页面不好,页面在wordpress中占有的地位比文章重,而我又不希望让这些内容占有那么重的地位。所以今天下狠心更改了链接结构。可能损失很大,百度们要从新来爬取我的网站,那些旧有的地址都不能访问了。不过长痛不如短痛。
再说这种新的链接结构/%postname%.html的好处。 对静态网站有一条SEO建议:“避免目录结构过深,如果能就把所有的网页存放在根目录下。”因为搜索引擎认为/asdf.html的权重大于/abc/asdf.html,该条对于wordpress这样的动态网站同样有效。从seo角度出发,链接应该尽量的短小。数字在链接中,包括日期等,都不具备太多的意义,要尽量排除干扰,除非你要做的关键词是911或者Casio 513D这样的词。再者以.html结尾不用/结尾总是更好。而且以后呢,我尽量每篇文章都加上一个缩略名,不再因为懒惰而不加了。
现在发现wordpress虽然提供了自定义永久链接的方便,但是还是显得不够自由。主要是没有提供多种链接接入方式,也没有提供链接重定向使得链接统一起来。不过似乎有插件解决了这一问题。
六一这天公寓停电了一天,也就是这天寝室同时断网了。也许要等一个星期再重新接入网络。现在我是在图书管敲这些文字。
在随身携带的U盘里我总是预备着一些我常用的软件:
搜狗拼音(习惯了自然码双拼输入,而既然用拼音还是得有一个好的词库才行)、火狐、adobe flash player(火狐插件)、gtalk、msn。
这些东西在其他地方上网一般没装,带着它们会很方便。
music文件夹里还有几个我喜欢的歌:
念着多喜欢、难道爱一个人有错吗、一个人的生活。
盘里面还做了个链到我博客的快捷方式;还做了个记事本,有时在里面敲一些想保存的文字,这点东西就是现在记事本里敲好的
两种计数器
一个是大家可以在我页面最下面看到的51.la计数器。国内比较专业的计数器,还不错,alexa排名上还有它。
还有一个大家在我的页面看不到,但是我确实在使用。Getclicky。我在侧边栏留了一个它的链接。
计数器还有其他很多,并不只有这两个。浏览其他博客会发现一些计数一样的小图标,喜欢的话就点击它,自己弄一个。
两种留言
在我的侧边栏都有。
上面的一个可以和你的IM端相连。
下面一个是个单纯的留言板。想要的话就点击上面的链接,可以直接通到服务商。
小猫小狗
朋友Terry的博客上有个小宠物。喜欢的话你也去弄一个http://doll-doll.com/。
google ad
很容易弄,只要你的服务商容许你弄。http://www.google.com/ads/
标签、标签云
给你的文章加上标签功能。启动Jerome’s Keywords插件,编辑文章后在下方的Keywords栏下加上标签。
新建文章或页面加上代码”[ tagcloud min_include=0 min_scale=2 max_scale=0 ]“生成标签云。min_include表示tag的最少使用次数,多于这个数值的才能被显示,默认值为3;min_scale表示最小字体;max_scale表示最大字体。
按月归档
启动插件SRG Clean Archives。新建页面,写入”%% srg clean archives %%”。可在SRG Clean Archives Options中选者是否显示评论数目。
顺应前几天的文章:《稍后我也来写个建博教程》。其实只是也常用功能的简单罗列。没有办法,谁叫我弄出了前面那篇文章呢!以后得注意,话可不能乱说呀!!!
建议呢,大家还启用这几个插件:中文 WordPress 工具箱、侧边栏区块管理插件 (Sidebar Widgets)、Google Sitemaps(方便搜索引擎找到你)、Lightbox JS v2.2 Plugin(如果要帖图片这个插件很有意思)、MyCSS + Page Header & Footer、Quote Comment、Quotmarks Replacer、Smiley Javascript Buttons、yo2keywords plugin for wordpress、yo2similar plugin for wordpress。这都是我已经启用的。
附:关于永久链接。优博提供两种永久链接:/articles/%postname%.html和/go/%post_id%.html。前一种是经过SEO优化的,链接中含有关键词,但是这种链接巨长,所以又提供了后面这种较短的链接。当然你可以自己定义其他形式的永久链接。也有一些耐心的人使用前一种链接形式,然后每篇文章都用英语关键词来个缩略名,这样就大大缩短了链接长度。可惜我是没有这种耐心
总体上说七十二松和优博网我觉得还不能比,单单看两者的主站就知道。我三天前在七十二松做的更新,现在依然在主页上稳稳当当的挂着。这在优博是不可能的。但是既然这两者在服务上有这么多重合的地方,七十二松还是有优博值得学习的地方的。
在七十二松是可以一个人有多个博客的,原则上无限多个。而且也支持多人博客,也可以删除博客。这些功能优博都不能实现,也没有透露是否在今后考虑增 。这三点是七十二松主要的优势。
由于都是wordpress,系统上两者是大同小异。但是提一下模板,七十二松一口气提供了50多个模板,分页显示。而优博好像在每次增设模板的时候都是非常小心,我不知道这是因为什么的考虑(猜想会不会是因为不能分页显示担心模板过的影响访问速度)。但是优博可以自行上传模板,所以在这点上也没什么弱势。
优博的插件相对多一点点(基板差不多,我没有数过),而且都比较实用。 在增设插件的时候同样表现得非常谨慎。七十二松的插件有很多都是提供一些web2.0网站的接口。有两个我觉得比较不错:Snap Shots 1.3、Contact Form ][。前者提供网页快照:网页快照 (Snap Shots),是由 Snap.com 提供的服务,在利用 Javascript 在网站的链接上加上一个快照功能,只要访问者鼠标停留在一个链接上,就会显示一个网页快照。后者提供访问者直接通过页面向作者发送E_mail:启动后在文章或者页面中添加 [CONTACT-FORM]代码即可。七十二松还提供访问统计功能(不是通过插件),这也是优博的用户曾经要求但是优博又一直没有提供的功能。镜像也是优博没有的功能(视乎没多大必要,访问速度还可以)。
优博不是一个仅仅提供博客服务的网站,还有很多其他功能。七十二松的服务就过于单一(也不见得就一定算弱势吧)。优博和用户交流的渠道要宽得多,有专门的讨论区,还建了两个QQ群,管理员也经常现身。两者都还没有脱离测试阶段,服务有时候会不稳定,不过大多数时候还不错。
对yo2的了解相对多一点。想谈谈对yo2的一点点不满。希望yo2尽快推出做事和标签的删除功能,以及解除好友关系的功能,现在进一步做大,这些功能应该要补上了。也希望yo2增加更改登录邮箱、博客域名的功能,增加博客删除功能。要是能提供多人多博客的话那就更好了,不过也许比较困难。yo2的wordpress是一个有一点点不同的wordpress,希望它能走的更远。
5.27补充: 七十二松不容许自己放置google广告,一经发现会发出警告,情况严重的会直接删除帐号。想放置广告的需要升级为专业博客帐号。
怎么搭建wordpress?只听说搭建WordPress很简单,以前不知道,现在知道了。的确很简单!
现在把我的搭建过程写在这里,也许对其他希望了解WordPress的朋友有所帮助。同时呢我自己也希望对WordPress有更近一步的了解,比如模板的制作,插件的制作以及多人博客等,希望能遇到一些高手在我学习的过程中指点一二。本文大部分出自Internet。
1.先准备几个软件吧:Apache,PHP,MySQL
我研究WordPress就是从这三个软件开始。刚看到这三个名字我一点也不知道它们是做什么用的,不过不要紧,很快你就会明白。 先下载再说,在迅雷上很容易找到下载地址。
2.安装
Apache
默认安装就行,中间要输入 Network Domain,Server Name 和 Administrator‘Email 。这里可以就随便输一个,我目前还不了解这些有什么用。也许是发布网站的时候有用吧。安装路径选择D:\ApaChe。安装成功后可以打开 http://localhost/ 进行测试。
PHP
下载下来是个压缩文件。直接解压到 D:\PHP 。
MySQL
默认安装。中间说要到 MySQL.com 注册,一般不需要,点选“Skip Sign-Up”,按“Next”略过此步骤。
3.配置
Apache
我用的是 Apache2.2 和 PHP5。Apache 配置文件都在 D:\Apache\conf\httpd.conf 下。
在 httpd.conf 里添加如下代码:
#Insert by me
LoadModule php5_module “D:\php\php5apache2_2.dll”
AddType application/x-httpd-php .php
以#号开头的是注释;第二行是注明 php5apache2_2.dll 的加载路径;第三行是对.php进行文件关联。
php
将D:\php目录下的 libmysql.dll 和 msql.dll 复制到 C:\WINDOWS\system32 目录下,用来加载MySQL动态链接。
在php目录下找到php.ini-dist,改名为php.ini ,复制到WINDOWS目录下。然后打开php.ini
找到extension_dir = “./”
改成extension_dir = “D:\php\ext”
去掉下面几句前面的分号:
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_filepro.dll
;extension=php_gd2.dll
;extension=php_imap.dll
;extension=php_msql.dll
在我的电脑->属性->高级->环境变量->系统变量->Path后面添加D:\php;D:\php\ext。
MySQL
运行MySQL安装目录bin文件夹下的MySQLInstanceConfig.exe设置向导。单击下一步。
选择Detailed Configuration,单击下一步。
选择ServerMachine,单击下一步。
选择Transactional Database Only,单击下一步。
Next。
选择访问量DS(20个),ONP(500左右),MS(自定义)。单击下一步。
选择TCP端口,可默认。Next。
选择编码。第三项,utf8编码。Next。
创建Windows服务,Next。
Modify勾掉,Next。
Execute!通过开始-程序-附件-命令提示符进入:
在“命令提示字符”窗口中输入 NET START MySQL 指令来启动mysql
录入cd C:\mysql\bin 并按下回车键,将目录切换为 cd C:\mysql\bin
在 C:\mysql\bin> 命令提示符下录入 mysqld-nt [...]