July 6, 2007
wordpress的离线发布用户们都曾碰到一个麻烦, 就是发布的文章总是无法直接发布缩略名, 而必须到博客的后台重新编辑, 为此有人想出了修改wordpress源文件的方法, 修改xmlrpc.php, 这个方法的确不错, 可以使得离线发布可以发送缩略名了, 但email发布文章又没有办法了, 难道再修改wp-mail.php文件? 这倒不用, 其实可以直接采用修改post.php的来实现在任何地方方便发送缩略名, 包括后台都一样, 所有的文章发布都需要过这个post.php的吗! 修改的方法如下:
找到 function wp_insert_post, 这个函数就是用来写入文章的, 所有的发布都要经过这里。
找到 wp_insert_post() 函数中的的 if ( $update ) $post_ID = (int) $ID;
在这个语句后面插入
if( !(strpos($post_title, ‘@@’) === false) ){
$post_titlename = explode(’@@’, $post_title);
$post_title = $post_titlename[0];
$post_name = $post_titlename[1];
}然后你在发布文章时, 只要在你的标题后面加入@@缩略名, 文章会在发布时自动将@@后面的缩略名分离出来并设置好。
这个方法比上面修改xmlrpc的方法唯一的好处就是所有的地方都可以使用, 不过还是依然麻烦, 每次wordpress发布新版就得去修改。
后来我又看了一下 wordpress 的 filter , 发现了一个新的方法就是用插件的方式来实现从标题分离设置缩略名, 从而免去修改wordpress本身源文件的麻烦。
插件很简单, 我运用了两个 filter, 分别的作用是分离缩略名和设置缩略名:
add_filter(’title_save_pre’, ‘get_from_title’, 1);
add_filter(’name_save_pre’, ‘put_to_name’, 1);
插件的使用更简单, 上传激活就ok了, 然后你在写文章的时候试试把标题写成这种样式: 标题@@缩略名
应该就可以了, 你可以在文章发布成功后看看缩略名是否已经被设置了, 如果你需要修改分隔符, 请自行修改 slug_from_title.php 文件, 将里面的@@换成你想要的分隔符就可以了。
该插件在 wordpress 2.2 上试验通过, 在wordprss的其他版本未作测试。
slug from title 的下载请点这里: 点击下载
最后: ps一下, wlw 的最新版在 wordpress 2.2 上可以直接设置缩略名, 但wordpress 2.1 以下还是不能设置
您喜欢本文吗?即刻订阅"偶爱偶家",精彩文章不再错过!现在就给我们留个话吗?


7 responses to "让wordpress离线发布不再被缩略名困挠"
从来不用离线发布,总觉得不是很可靠啊。
要是有什么问题上来修复下也晚了。
[Reply]
你可以先存再去博客上浏览再发, 我觉得发图多的话, 离线编辑器有优势
[Reply]
标签、缩略名、这些都不好办,不如在线写,边写边预览。。。
[Reply]
现在这些都不是离线的毛病了, 而且离线也可以浏览啊
[Reply]
不过新的wlw的确是挺好用的啊
[Reply]
我也习惯在线发布了,离线编辑器用过,但是还是不怎么习惯~
[Reply]
http://www.6inchboot.com/
UGG boots;cheap UGG;UGG classic
[Reply]