解决转发新浪博客插件wp2sinablog修改文章后重新发布的问题

by 独立观察员 | 2014年5月3日 22:04

解决转发新浪博客插件wp2sinablog修改文章后重新发布的问题

——独立观察员 2014.04.30

最近wp2sinablog这款插件好像有点问题——就是每次修改文章它就又新发一篇到新浪博客了,前一段还不会这样的。如果是修改文章后,同时提交修改到新浪博客,这可说是完美状态的;可惜插件没有这个功能,我们也不奢求,只要别出错就好;但偏偏最近就出了这个问题,着实令人苦恼。

这个问题不是插件更新引起的,因为本插件已好久不更新了。我目前使用的是作者(星海 / Starhai)最后更新于2012-6-3的2.0.1版本,可见插件的WordPress页面(http://wordpress.org/plugins/wp2sinablog/),或插件官网1(http://wpto.starhai.net/wp2sinablog.php),或插件官网2(http://wpto.tk/index.php?n=Main.Wp2Sinablog 这个应该已被废弃),或是作者博客——星海博客(http://starhai.net/),我想说的是,星海大哥(大姐?),您好多网站啊!

关于插件不更新的问题,作者在其博客中(http://starhai.net/2013/462.htm)是这样说的:

    自2011年以来,发生太多事情以致这两个插件未能保持更新,事情一直在忙碌中,真是空空又过了许久。最近在准备某大学的MBA考试,希望考完后能有些时间来做自己喜欢的事情。另推荐blogcross 博客备份软件,功能还比较简单,有兴趣的不妨拿来一用,顺便提下意见。软件下载地址是http://www.blogcross.net

可见,我们还是有些许的希望能迎来更新的。

既然不是插件更新引起了错误(因为没更新),那么要么是升级WordPress 3.9的原因,要么是运行时间久了产生的Bug,不管怎样,反正原因是不得而知了,网上也没发现相关解决方法,只能自己看看能不能解决了。

虽然我网站上使用的是2.0.1版本,但我电脑里存放的是1.0.6版本,我当时还没发现,所以我当时看的是1.0.6版本里的文件,两者的文件结构还是很不同的:

 

由图可见,1.0.6主要就是一个php文件,所有函数、显示内容等都写在里面;而2.0.1版本则另外分出了两个”class”打头的文件,用来存放一些函数,不过其实只要使用”wp2sinablog.php”和”class-wp2sinablog.php”两个文件即可(readme里说的),”class.wp2sinablog.php”与”class-wp2sinablog.php”的内容99%相同。

我在浏览1.0.6版本的wp2sinablog.php文件时,发现了一句疑似的关键语句:

 

if($post->post_date==$post->post_modified) —— 这句表示,只有文章发布时间与最后修改时间相同才执行后续操作,如果有这句,不应该有那样的问题出现才对,难道网站插件目录下的文件中没有这句了?

我连上FTP,进入站点的本插件目录,发现怎么多出两个文件?哎,先不管那么多,打开wp2sinablog.php文件查看,却没找到publish_post_2_sinablog这个方法。那就到”多出”的两个文件中找找吧。

这两个文件的文件名只是一字之差,更准确地说,应该是只差一个符号,到底是哪个起作用呢?看看wp2sinablog.php文件开头就知道了,原来是class-wp2sinablog.php文件啊:

 

在该文件中很容易就能找到相关函数,果然缺少了关键语句:

 

我们只要将if($post->post_date==$post->post_modified){ } 套上去即可:

 

补充:如果觉得让”文章发布时间与最后修改时间相同”条件太苛刻,可尝试修改判断条件。比如,使用

if($post->post_date + 2*60 >= $post->post_modified){ }

 

下载地址:点击下载

谢谢阅读!

下载为PDF

相关文章

本文标签: |

Source URL: http://dlgcy.com/wp2sinablog-problem/