标签 wordpress 下的文章

叶子说,铃丹又开始造反了……嗯,我又开始了。

关注本站的,都知道,今年初YYLD.net停了半年,直到上个月才重开。但虽然重开,我还是觉得力不从心,远达不到去年或之前的效果,而对wordpress 3系列一直并没有详细了解,很多功能用不到位也无精力折腾。于是,在wordpress 3.2推出之际,我忽然想,把站点合并了。这样,就可以省好些事,并且站点没那么散的话,资源也容易达到最大化利用。当然,另外还有些原因,让我觉得,就这么做吧,试试看。

于是,在新建一个wordpress 3.2版本,开通其多站点功能后,无意中发现,原来wordpress 3.2可以支持子站点绑定顶级域名了:当然,这个前提是空间要支持泛域名解析。在开新站点后,把顶级域名绑定上空间,填在站点资料里即可。正兴奋的时候,一个大霹雳轰了一下,伪静态失效——这是怎么回事呢?比如这里,我若绑定YYLD.net,则https://yyidea.com/?p=1可以访问,https://yyidea.com/1/不能访问,就是这样。我想,会写.htaccess的话,应该可以解决这个问题;不过,多域名多站点已经不是我所需了,做好一个站才是重点。

至于YYLD系列域名,我还在想怎么弄,可能会以静态站或相册或数据调用吧。

很久没留意wordpress的变动,只是看着网站后台有提示升级就升级了,想起来就写两篇废话,结果在昨天发现,日志ID不连续了……纠结个纠结!找叶子一问,她也有这个问题,并和我证实了。对于我们这种有ID连续嗜好的人,还是解决了比较好。但我懒了,就到处找人问,在万戈同学的帮忙搜索下,得到了被“复制”的到处都是,一样含糊不清的修改方法,通过初步测试,这个方法是有效的。记录如下:

先打开根目录下的wp-config.php,在$table_prefix = 前面添加代码:
define('WP_POST_REVISIONS', false);
define('AUTOSAVE_INTERVAL', false);

然后打开wp-admin文件夹下的post-new.php和post.php这两个文件,将其wp_enqueue_script('autosave');那行注释或删除掉;

接着是wp-admin文件夹下includes文件夹里的post.php,找到if ( $create_in_db )在它的前一行添加:
$create_in_db = false;

似乎这个修改会影响写日志时候,上方“加粗”等快捷代码的使用,也就是,它们不能用了。对我来说,还好,用不上。

此方法可能有部分wp 3.2.1版本无法使用,会显示无权限而导致无法发文章;但部分站点似乎又可以,具体未追究。建议考虑由zww大叔提供的另一方法:http://zww.me/archives/25457

2011年12月14日补充:
在3.2或3.3版本里,修改wp-admin/includes/post.php这步(最后一步)不要做,做了就没法发日志了。若不做这步,其效果是,点了“写文章”就会在数据库里生成一个“自动草稿”,但把文章“发布”后,其变为文章数据。若点了“写文章”但没发布文章,其会以“自动草稿”方式占一个ID,除非修改数据库。

今天修改了下网站的评论,还是改为较为传统的显示方式为好;不过在修改过程中,发现一个问题:就是因为装了wp的缓存插件,模板文件上传后刷新网站,愣是没改变。外加网速不咋的,一次header.php没传上,首页就给我彻底的“裸奔”了……最后关了这个插件才改好相关代码,和核对到具体效果。

不过遗憾的是,QQ头像的代码,也因此神奇的失效报错,我只能暂时删了这块的功能。待有空再整理核对。关于wp缓存插件的相关使用说明实较少,或者说,我看不懂,也是个无奈。不过现在站点人数不算多,缓存与否,差异感应该不大,暂时如此吧。

自从把客户的网站,从wp搬到dede后,被曰为:感觉速度快了很多;让我也感觉和无奈。dede那东西我现在还是用的比较懵懂,或者说,其功能还是太丰富了,不太合适我这种简洁型。近期又有人来求我这套wp主题,我还是没应;感觉这东西,也成了高不成低不就的……

今天忽然想起,问了下林木木,装上了WP Super Cache插件,把博客缓存了,也当是为自己手头上其它wp站点做测试准备吧。搬家的事情,实在太累,不想折腾,对wp的UI还是用惯了,舒服……

由于是旧版本的升级,外加简体中文版还未出来,暂用台湾版,开启多用户功能。插件google sitemap歇菜,只能等其更新。部分功能歇菜,看看能否更新。

1、wp-config.php里关于语言包的调用修改,CN换成TW:
define ('WPLANG', 'zh_TW');

2、wp-comments-post.php的改名防spam(基于模板的ajax提交前提),这里3.0版本效果待验证

3、同步插件依然有效

4、主题左侧栏的添加(取消)

5、主题发信功能有效,问题是,只能发gmail,不能发qq,可能qq邮箱方面有所限制

6、2.0系列版本的防止自动保存,保持序号连续的修改方式和插件依然有效

7、comment-template.php取消评论链接

8、新增2个子用户的模板修改和正式启动

这两天稍微有些空,就开始琢磨自己一直想弄却没弄的站。这会子wp3的官方简体中文版还未出来,略有些等不及,就拿繁体(正体)版装上,升级到wp3.0。

按着网上的教程加了代码,注意一点,代码要加在英文是“/ That’s all, stop editing! Happy blogging. /”,中文是“/ 设定完毕,请保存该文件。 /”的上方,否则会没效果的。这个刚开始时候我自以为放在最后就行了,结果失败,没反应……(教程我就不复制了)

开启多用户后,在“超级管理”下可以设置新的blog,如果是自用自然就不需要开启啥“注册”功能。只是,wp的多用户只支持当前域名的二级域名,如yyld.org下开个多用户,可以为“myname.yyld.org”,却不能绑定其它(顶级)域名(因为这个效果估计是用伪静态做的,并不产生实际的文件夹)。不过如果用.htaccess可能可以“伪”到顶级域名上,但设置估计是比较麻烦的,还需要定义robots,想想还是算了,不做尝试。

更新后,原来的自动保存关闭设置还是有效的,而多用户于个人站点来说,似乎用处不大了。不过对cms类型站点,开什么专题之类应该是挺好用的,或许可能还会比cms程序更方便,因为界面可以单独diy,不用搅和到一起。

一个不是很起眼的问题,多发生在喜欢贴代码的博客里,有个不是很出名的插件可以解决。而我曾尝试把这个插件代码放到模板的functions.php里,测试成功。代码如下:

//禁止半角转全角 $qmr_work_tags = array( 'the_title', 'the_content', 'the_excerpt', 'comment_text', 'list_cats', 'single_post_title', 'comment_author', 'term_name', 'link_name', 'link_description', 'link_notes', 'bloginfo', 'wp_title', 'widget_title', 'term_description', 'category_description', 'widget_text' ); foreach ( $qmr_work_tags as $qmr_work_tag ) { remove_filter ($qmr_work_tag, 'wptexturize'); }

这个问题的答案本在wordpress.org.cn里看到,原方法是修改wp-includes下的某文件,注释掉:

add_filter( 'comment_text', 'make_clickable',9 );

这方法有效,但每次wp升级后都要重新修改;今天无意看到含有此功能的一个小插件,顿悟,原来可以如此:在模板的functions.php里(加在最后吧)加上这句代码就行了。

<?php remove_filter('comment_text','make_clickable', 9); ?>

一个add filter,一个remove filter……模板里又多一个小功能。

列一下,有个数:
小墙:防spam
评论回复ajax效果
评论回复邮件提醒
页码:翻页
相关日志(无则显示随机日志)
QQ头像读取
Gravatar头像缓存
禁止半角转为全角
读者墙
最新评论列表
归档
给站长发邮件留言
图片Thickbox效果(点击放大)
向上/向下浮动导航(不兼容IE6)
框架相册

插件因为近期部分功能的主题化,而减为5个;再减已不太可能。

PS:既然是主题的功能,就都是非插件,以代码方式实现的。而以上代码均在网上寻得,所以请勿问我具体代码是啥。若你会用应该会寻。

在网上翻了半天这个问题的答案,虽然有,但基本全胳膊少腿的。自己尝试了几下,做个记录。

说明:里面的数字为分类ID号,在后台编辑分类的地址上可以看到这个id号,对应写就行了。最后一个else是在之前没特别定义的分类样式。

<?php $post = $wp_query->post; if ( in_category('7') ) { include(TEMPLATEPATH . '/archive-view.php'); } else if ( in_category('12') ) { include(TEMPLATEPATH . '/single12.php'); } else if ( in_category('42') ) { include(TEMPLATEPATH . '/single42.php'); } else { include(TEMPLATEPATH . '/archive-other.php'); } ?>

文章页的,按不同分类来区别:

<?php $post = $wp_query->post; if ( in_category('7') ) { include(TEMPLATEPATH . '/single-view.php'); } else if ( in_category('3')) { include(TEMPLATEPATH . '/single-case.php'); } else if ( in_category('42') ) { include(TEMPLATEPATH . '/single42.php'); } else { include(TEMPLATEPATH . '/archive-other.php'); } ?>

这个应该同时可以扩展为按不同标签等来进行设置。

以上代码分别修改的是archive.php和single.php,全部替换成如上代码。