标签 wordpress 下的文章

在很多年前,typecho刚出现不久(好吧,在typecho论坛的注册时间是10年前……),我就有留意它,不过各种原因下来并没有考虑使用,而一直在用wordpress……可是wp越更新越大、越更新越累赘,感觉都不能安静的写文了(这叫:明是自己没有墨水,却怪纸张不够优秀……):

1、早些年加了判断“如果网站别名是数字的话,后面会自动加‘-2’”,弄得我改了给插件来避免每次去数据库里删;

2、早之前前不久换了编辑器(看着很酷,但产生不少垃圾代码,换程序后,别的编辑器不会转换这些代码,还不得改……)

3、然后就提醒我的空间的php版本太低了,不能升级;这也就罢了,还隔三岔五的继续自动升级,再通知我升级失败……(虽然我也承认我的空间不是太高级,更不是vpn)

4、你更新的这么频繁,我又不能改你源代码,除非我断了你的更新。

刚好前几天出现移动的网络不能登录网站空间(电信)的ftp——刚开始以为是空间的问题,后来才查出是网络的问题——但登录另一个朋友的却没问题——让我整个人都要抓狂了,差点就想放弃备案逃离了。

这一折腾,就在朋友那试起了tc,找了个主题按自己喜好改了下,就顺手换了;而原来空间的ftp在这两天又能顺利登录和麻利的上传下载。

当然,在tc的安装、wp到tc的数据转换、文章编码按序号排(不适合需要保留评论的)、页面、发文等都出现了各种小问题,也是逐一折腾,好歹初步落定,也还算顺利的完成“搬家”。

有人说tc已经名存实亡了,不过根据它论坛的记录来说,只是在以及其缓慢的速度更新着——毕竟非商业化,能稳定就好。

说真,看这简单的编辑后台,感觉很舒服。

或许就应了那句:念念不忘,必有回响。

typecho 念念不忘 必有回响

曾经死犟过,以不使用wordpress后台多媒体,关闭自动保存的方式来保证wordpress文章的post的id和顺序性;可这种犟法终究会累,后来就利用起了纯数字的别名,在固定链接里使用文章名/%postname%/,保证文章链接的简洁和连续性。然而,不记得在哪个版本后,使用纯数字别名,在发布的时候,会在数字后多出一个“-2”。比如说,这篇文章在发布时候设置的别名是“894”,其链接地址是应该是 https://yyidea.com/894/,但wordpress给生成的是 https://yyidea.com/894-2/

出现这个问题后,曾在网上翻阅若干而未见有人提及。一个纠结于连续数字的站长不多,二个可能每个人的实现连续方式不同,三个可能在乎的人并不是懂php的。

好吧,这两天作为当年折腾帝的我,又面对上这个问题,依然搜索不到答案;也考虑过是不是只有我这个老站才有该问题(其实重装过),但尝试新建wordpress测试,“-2”也还是不依不挠的存在。

最终只能变通一下,把mysql的查询脚本,放在了清理插件WP Clean Up里——本来想新写一段的,看着又麻烦,就替换了最后关于feed的清理代码。于是,每次更新发布完,运行下插件,也算曲线解决方案了。

顺道,记录mysql脚本如下:

update wp_posts set post_name = replace(post_name,'-2','') where post_type='post'

还说天天更新呢,结果又一个多月没更新,也是服了自己了。

调整了下站点,增加了tag的自动添加和相关文章插件;未免丢失代码,tag自动添加的代码复制一份如下:

/** * WordPress 自动为文章添加已使用过的标签 * http://www.wpdaxue.com/auto-add-tags.html */ add_action('save_post', 'auto_add_tags'); function auto_add_tags(){ $tags = get_tags( array('hide_empty' => false) ); $post_id = get_the_ID(); $post_content = get_post($post_id)->post_content; if ($tags) { foreach ( $tags as $tag ) { // 如果文章内容出现了已使用过的标签,自动添加这些标签 if ( strpos($post_content, $tag->name) !== false) wp_set_post_tags( $post_id, $tag->name, true ); } } }

代码加在主题的functions.php。

今天找资料时候也忍不住吐槽下,大部分wordpress资料都是2013年或更早前的,似乎近年已经少了技术支持。或者说,有能力的不少都选择了去做扩展付费类服务吧,虽然无奈,也是情理之中——天天帮人,那自己吃啥呢?

顺道提下,近期玩了下手游“加菲猫爱消除”,一口气整了几十关,刚开始觉得还有点意思,不过后面随着关卡难度的增加,也是不花钱没道具不好通关“斯基”的节奏;其实是有办法刷无限道具的,排行榜里的超级高分自然就是那样来的;瞬时又没了继续玩下去的乐趣……

有3个网站,1个名片的任务在手上,真的不能再歇气了!

滚滚长江东逝水
浪花淘尽英雄
是非成败转头空
青山依旧在
几度夕阳红
白发渔樵江楮上
惯看秋月春风
一壶浊酒喜相逢
古今多少事
都付笑谈中

这个wordpress的文章形式功能测试用文章,折腾死我了……其实,一般情况下,这东西用处不大,它是固定某种格式的,除非一个站点需要若干有特色格式进行展现,否则有些有限……如果善于编辑,在写文章这里也可以排版好各种格式:好不容易把编辑器的代码搞定,却发现找不到什么外链歌曲,又不想把歌放在空间里,只好作罢。留下flash编辑器的代码:还是从木木那边刨的。

(代码已废)

这篇想用“引语”文章形式,结果发现用了引语,只剩下歌词一段了……只好再改。

无论采用网上上我所能搜到的哪种法子,都不能很好的解决wp 3.3.1的连续ID。即便我新装一个WP,在“写文章”的时候,它依然会增加一个“自动草稿”,不会消失;或许是我空间或数据库哪里出了问题,但我不想折腾了。

近期用的法子是,写文章后,用插件删除数据库里的“自动草稿”,再重新排列下数据库:这样ID就可以保持连续;但继而发现一个问题,同步到Qzone的时候,地址是写文章时候生成的地址,而不是修改后的;接着又一个问题,文章重新排序后,数据库里的guid不对了。

看来用通过修改数据库的方法,很难完善啊;自己又是半桶水技术,做不到一步到位。

可依然不想用拼音或英文等别名,再者数字ID用了这么久了。于是,决定尝试终极法子:曲线救博。

在数据库里,先改掉不对的guid,然后,把别名统一换成id,即数字号:
update wp_posts set post_name=id

当然,这个前提是自己的文章ID已经连续了……然后这里会涉及几个页面的别名也会被改,数量不多,在后台修改回去即可。

于是,这几个页面留下的ID数字可以再利用了。比如这篇文章的426,其实是某页面的ID,但这里其实是别名……

是的,别名,在后台,固定链接处,把固定链接由ID改为别名;以后在没会的人写出自动改数字别名的前提下,就手动写下别名吧;只是数字,不用翻译或拼音,没那么头大。

如果想同步到qzone的话,当然还要改点地方,就是插件post2qzone:找到get_permalink把其带的括号里的改为$id,这样就取永久链接/?p=123格式的,只要不自行改数据库,就不会错了。

今天才想到这么个东西,于是就搜索了下,找到一个软件叫wptogo。软件比较老,在木蚂蚁上评分也不高,还是自己先试下看,如果能离线写就方便很多了。里程碑的全键盘设计是@不愁写东西的。

这软件的设计上可设置分类和标签,还可上传手机图片;那就看看这篇日志的效果吧。

(原来是默认保存为草稿的,也行!)

借着wp升级之际,我们又提到了连续ID的问题。折腾一番后才发现,原来自定义菜单,也是会影响ID的连续性的……多么悲催的世道,于是,我狠下心,把自定义菜单也删了,直接在主题的header.php里写链接,反正这东西N个世纪也不会改……然后把理论上应该是完美的法子总结如下,供叶子(叶落阁 http://yelog.net)美女参考。当然,老话题,想连续ID,媒体那块必须空着,传图传文件只能用ftp传,否则……

这些修改,先要感谢这3个站点提供的文章:
知更鸟 http://zmingcx.com/necessary-two-plug-ins-super-switch-with-wp-cleaner.html
露兜博客 http://www.ludou.org/wordpress-post-id-continuous.html
霜天部落 http://www.frostsky.com/2011/04/wordpress-guid/

造反前,先把数据库备份了,不会备份的就点后台左边“工具”-“导出”,导出为xml。

然后登录phpmyadmin,找到“wp_posts”表,在浏览状态下,点“post_title”,把无标题的几条数据删了(这东西就是自定义菜单的蛛丝马迹……)

在phpmyadmin里执行

DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision';

不会的话,就用知更鸟说的WP Cleaner插件。

然后去露兜博客那的最后下载那个文件,按其说明运行,把ID改成连续的。

最后修改guid(记得改下面的网址):

update wp_posts set guid = concat('https://yyidea.com/?p=',ID) where post_status = 'publish' and post_type = 'post';

其实那个Super Switch已经不用装了,露兜博客说的解决3版本的方法也没用了;自动草稿这个悲催的东西总是坚强的存在着,现在只有曲线救x:
1 继续在wp后台写文章,写一篇,执行上面部分动作一次:删除自动,排序ID,修改guid……或者,谁把这套动作做成插件,倒是百试百灵……
2 用第三方来发文章,比如office word或Windows Live Write等。

不过,这方法好像还有效 https://yyidea.com/635/

PS:好像,部分文章的分类和标签乱了……囧……唉,折腾总是个费劲的事,不折腾又没劲……