对具有外部数据和不具有元值的自定义POST类型列进行排序

时间:2016-05-10 作者:Thomas

我创建了一个自定义的post类型“Book”,其数据存储在外部数据库中(如ISBN、author等)。WordPress数据库包含每个自定义帖子的ISBN,它通过自定义数据库连接将正确的数据连接到自定义帖子。

ISBN编号存储在自定义帖子的“内容”字段中。单一图书模板从帖子内容中提取ISBN,然后根据ISBN从外部数据库加载附加信息。

在后端的“所有书籍”页面上,我想使用可排序列(例如,按作者姓名排序)。我知道对自定义帖子类型进行排序可以很好地处理元数据,但是由于自定义帖子类型的数据存储在单独的数据库中,因此这些元数据不存在。是否有任何方法可以使用外部数据库中的数据对帖子进行排序(即不使用包含重复数据的元数据)?

顺便说一句,我是从头开始创建的,插件并不是这种特殊情况下的解决方案。

1 个回复
SO网友:Rarst

如果我理解正确的话,您的工作流程是查询帖子(隐式地通过正常的WP机制),然后显示来自外部数据库的数据,但是希望根据外部数据进行排序。

这并不是一件小事(如果不进行镜像,您就不想这样做),因为WP主要依靠SQL对自己的数据进行排序。

实现它的方法之一(假设条目数据与外部数据库的奇偶性)是使用该数据库进行排序:

查询外部数据库中具有所需排序的条目post__in 查询参数和orderby=>post__in 例如)相当迂回,但我想不出没有数据镜像的其他方式。

相关推荐

Database access using docker

我使用docker指南安装了一个新的wordpress项目:mkdir my-wordpress-site cd my-wordpress-site ddev config --project-type=php ddev composer create wordpress/skeleton --no-interaction --prefer-dist ddev config --docroot=wp --project-type=wordpress ddev res