• WordPress

    Posted on May 5th, 2008

    Written by MoontoC

    Tags

    本篇文章并不是用来介绍WP的Feed的新手教程,更不会是歌颂WP的优秀功能,而是批判WP对Feed的近乎可憎的'优秀'易用程度

    简单的说,WP用户都多少会发现WP的Feed遍布任何角落,附件,文章,页面,分类,链接分类,标签,每个东西都有一个Feed,而我并不希望它存在,确切的说,它很让我反感,因为无论你希望用户订阅你哪一个固定的Feed,你都没办法阻止,你都没办法统计到底有多少用户订阅了哪些不该订阅的,在统计外的Feed,这很讨厌,所以我决定砍死它,结果发现砍死它的结果无论你希望砍死哪一只,你都会让它全军覆没,从此不再提供Feed功能给你

    WP对Feed的支持真的是够彻底,而且彻底到让我恨它,因为我没有任何办法定制它,首先说如果你希望打开一个WPblog的Feed有这样几个办法

    /post|page|cat|tag|att|/feed/
    /post|page|cat|tag|att|/feed/feed|rdf|rss|rss2|atom/
    /wp-commentsrss2.php
    /wp-atom.php
    /wp-feed.php
    /wp-rss.php
    /wp-rss2.php
    /wp-rdf.php
    当然还有最重要的,/index.php?********&feed=
    最后这个可以让你在任何单个feed文件被删除,rewrite被屏蔽或破坏的情况下,任意的显示你想要的feed

    然后我考虑一件事,如何迫使用户订阅我希望的Feed?!

    之后我尝试过了,最后发现我尝试了一个没可能性的方向..

    WP对Feed请求的处理过程是由rewrite.php匹配最后决定要输出什么内容的,我想文章看到这里,除了第一天用WP的都知道/任意内容/feed/可以显示一个feed内容,而这个feed四个字母,是WP内定的,不允许更改,它是$WP_Rewrite->$feed_base, 唯一的定制方式是在插件中载入$WP_Rewrite来修改它, 而对于分类,你却可以在后台随意定制, 但即便你载入了$WP_Rewrite, 并且修改了它, 但你还需要让这份新规则被添加到数据库中-_-, 必须先清空数据库里的规则才能生效

    接着, 即便把/post/feed/feed灭了,/post/rss|rss2|rdf|feed/都可以完好的显示, 原来还有个$WP_Rewrite->feeds, 最后我真的败了, 我发现即便我改了这些, 最终, 用户是可以用index.php访问一切的...

    完全没有任何定制可言, 我真的很无奈, 最终, 我选择从核心破坏feed, 让所有人都看不到它, 而不是改变成我想要的路径或结构, 然后选择一个白名单来输出feed内容, 再交给我自己的程序来选择性的输出特定的feed给用户

    接下来的事情就是让用户来考虑是否订阅这个网站的新feed地址了

    Update: 2008.05.06

    也许的确是我要求太苛刻了, WP提供了generate_rewrite_rules和一个rewrite_rules_array

    前一个用于用户自己添加新的URL地址规则,第二个用于定制现有规则,但由于定制好的规则是一个大面积的数组,而这个东西我觉得更应该提供一个片段的修改能力,所以一直没碰它, 今天尝试了处理它, 最后把自己搞烦了, 把大把的规则自己重写, 还不如全删-_-, 但无论如何, 最终我都无法阻止index.php直接访问到feed, 所以还是放弃了这个玩法, 转而从feed的模板载入这个阶段添加filter, 限制来访的人, 除了特定ip/ua之外, 都被跳转到特定地址

    This entry was posted on Monday, May 5th, 2008 at 07:58 and is filed under WordPress. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.
  • 4 Comments

    Take a look at some of the responses we've had to this article.

    1. Posted on May 8th

      feed多的确是麻烦事,我以前用pjblog的时候就发现有很多人喜欢订阅我的分类feed
      现在我尽量要求大家用绑定到feedsky的那个域名
      或者用默认的/feed这个地址,已经被转向到feedsky了

      至于其他,我就没办法了,随便吧……

    2. Posted on May 8th

      feed多的确是麻烦事,我以前用pjblog的时候就发现有很多人喜欢订阅我的分类feed
      现在我尽量要求大家用绑定到feedsky的那个域名
      或者用默认的/feed这个地址,已经被转向到feedsky了

      至于其他,我就没办法了,随便吧……

      所以还是统一下好, 过两天我发个毁灭wp的feed的插件

    3. Posted on August 22nd

      最后“毁灭”的那词儿看我一哆嗦~用词还真生猛~
      wp的feed一直以来让人不爽,但相比之下外包的feed服务似乎更不爽,不是feedsky三天两头怠机,就是feedburner三天两头撞墙~
      反正我索性把主要的feed全摆上了,爱订哪个订哪个~省得闹心~

    4. Anonymous
      Posted on August 17th

      有时的确要毁灭FEED。。。

  • Post a Comment

    Let us know what you thought.

  • Name:

    Email (required):

    Website:

    Message: