【问题标题】:Extending Wordpress XML-RPC to include custom post types and taxonomies扩展 Wordpress XML-RPC 以包含自定义帖子类型和分类法
【发布时间】:2011-10-12 00:38:40
【问题描述】:

我正在尝试插入具有自定义帖子类型的帖子,我还想附加自定义分类法。大多数可用的补丁都已过时,仅适用于“xmlrpc.php”。现在 wordpress 中控制该功能的文件是“class-wp-xmlrpc-server.php”。有人可以就如何剖析文件给我建议吗?我更愿意在我的主题文件中添加一个过滤器,而不是覆盖 Wordpress 核心文件。

【问题讨论】:

    标签: wordpress xml-rpc


    【解决方案1】:

    我意识到这是一个老话题,但在过去的几周里,我一直在想同样的事情,并且完全重写了该文件的一些内容以处理我需要它做的事情。对于我的实现,我有一个名为“blog”的自定义帖子类型,以及名为“blog_categories”和“blog_tags”的自定义分类法。是的,有点多余,但这是一种实验。

    如果您查看class-wp-xmlrpc-server.php,您会注意到它有点混乱(取决于您使用的 WP 版本,它可能会更好或更差)。我发现在不破坏任何内容的情况下进行此操作的最简单方法是继续将分类功能更改为通用功能而不是类别并发布特定功能。这涉及找到wp_get_post_categorieswp_get_post_tags 的所有实例并将它们替换为更通用的wp_get_object_terms,并将get_categories 替换为get_terms。一旦使用 categoriestags 作为分类法,您可以执行以下两项操作之一:

    1. 在我的情况下,XML-RPC 只需要像默认一样工作,除了将 post 更改为 blogcategories 更改为 blog_categories 等。我只是替换了文字,我的新 XML-RPC 允许我像平常一样使用 Live Writer,但它会使用我的自定义帖子类型和分类法。
    2. 如果您需要可用于多种帖子类型和分类法的函数,则需要更深入地挖掘并重写这些函数(理想情况下,重写它们以使用 0-n 分类法和任何帖子类型)。如果您想使用 Live Writer 等现有软件,请考虑向后兼容性。还要考虑功能 - 如果您有自定义帖子类型的自定义角色,那么您应该考虑将功能检查替换为:user_can('edit'_.$post_type, $postid)

    遗憾的是,Wordpress 是 1 种文章类型、2 种文章类型(页面)、n 种文章类型(自定义)进化模型的牺牲品,而 XML-RPC 并没有像系统的其他部分那样受到广泛的喜爱。您可以在那里调查一些过滤器/操作挂钩,但我认为您只需修改核心文件就会更轻松。 这意味着您的修改将被核心更新覆盖!

    希望这对您和其他想要做同样事情的人有所帮助!

    【讨论】:

    • 虽然我正在阅读 3.4 对 XML-RPC 的补充(我在 3.3 上做过),但看起来他们做了很多,如果不是全部,我刚才说的。这篇文章对于 XML-RPC 派对来说可能有点晚了!
    猜你喜欢
    • 2013-08-03
    • 2013-06-22
    • 2011-09-24
    • 2012-05-01
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 2016-02-04
    • 2014-05-15
    相关资源
    最近更新 更多