我创建了一个自定义的post类型“Book”,其数据存储在外部数据库中(如ISBN、author等)。WordPress数据库包含每个自定义帖子的ISBN,它通过自定义数据库连接将正确的数据连接到自定义帖子。
ISBN编号存储在自定义帖子的“内容”字段中。单一图书模板从帖子内容中提取ISBN,然后根据ISBN从外部数据库加载附加信息。
在后端的“所有书籍”页面上,我想使用可排序列(例如,按作者姓名排序)。我知道对自定义帖子类型进行排序可以很好地处理元数据,但是由于自定义帖子类型的数据存储在单独的数据库中,因此这些元数据不存在。是否有任何方法可以使用外部数据库中的数据对帖子进行排序(即不使用包含重复数据的元数据)?
顺便说一句,我是从头开始创建的,插件并不是这种特殊情况下的解决方案。
SO网友:Rarst
如果我理解正确的话,您的工作流程是查询帖子(隐式地通过正常的WP机制),然后显示来自外部数据库的数据,但是希望根据外部数据进行排序。
这并不是一件小事(如果不进行镜像,您就不想这样做),因为WP主要依靠SQL对自己的数据进行排序。
实现它的方法之一(假设条目数据与外部数据库的奇偶性)是使用该数据库进行排序:
查询外部数据库中具有所需排序的条目获取一组ISBN条目从WP数据库中查询与条目对应的帖子用这组帖子覆盖主查询(post__in
查询参数和orderby=>post__in
例如)相当迂回,但我想不出没有数据镜像的其他方式。