【发布时间】:2011-10-12 00:38:40
【问题描述】:
我正在尝试插入具有自定义帖子类型的帖子,我还想附加自定义分类法。大多数可用的补丁都已过时,仅适用于“xmlrpc.php”。现在 wordpress 中控制该功能的文件是“class-wp-xmlrpc-server.php”。有人可以就如何剖析文件给我建议吗?我更愿意在我的主题文件中添加一个过滤器,而不是覆盖 Wordpress 核心文件。
【问题讨论】:
我正在尝试插入具有自定义帖子类型的帖子,我还想附加自定义分类法。大多数可用的补丁都已过时,仅适用于“xmlrpc.php”。现在 wordpress 中控制该功能的文件是“class-wp-xmlrpc-server.php”。有人可以就如何剖析文件给我建议吗?我更愿意在我的主题文件中添加一个过滤器,而不是覆盖 Wordpress 核心文件。
【问题讨论】:
我意识到这是一个老话题,但在过去的几周里,我一直在想同样的事情,并且完全重写了该文件的一些内容以处理我需要它做的事情。对于我的实现,我有一个名为“blog”的自定义帖子类型,以及名为“blog_categories”和“blog_tags”的自定义分类法。是的,有点多余,但这是一种实验。
如果您查看class-wp-xmlrpc-server.php,您会注意到它有点混乱(取决于您使用的 WP 版本,它可能会更好或更差)。我发现在不破坏任何内容的情况下进行此操作的最简单方法是继续将分类功能更改为通用功能而不是类别并发布特定功能。这涉及找到wp_get_post_categories 和wp_get_post_tags 的所有实例并将它们替换为更通用的wp_get_object_terms,并将get_categories 替换为get_terms。一旦使用 categories 和 tags 作为分类法,您可以执行以下两项操作之一:
post 更改为 blog,categories 更改为 blog_categories 等。我只是替换了文字,我的新 XML-RPC 允许我像平常一样使用 Live Writer,但它会使用我的自定义帖子类型和分类法。user_can('edit'_.$post_type, $postid)。遗憾的是,Wordpress 是 1 种文章类型、2 种文章类型(页面)、n 种文章类型(自定义)进化模型的牺牲品,而 XML-RPC 并没有像系统的其他部分那样受到广泛的喜爱。您可以在那里调查一些过滤器/操作挂钩,但我认为您只需修改核心文件就会更轻松。 这意味着您的修改将被核心更新覆盖!
希望这对您和其他想要做同样事情的人有所帮助!
【讨论】: