我正在修改一个使用各种自定义帖子类型的插件。类型为
courses
lessons
topics
在
course,
lesson, 或
topic 级别也可以是
quizzes 和
assignments.
该插件还集成了bbpress 这样就可以forums 和forum topics 与关联的course. 但仅限于课程层面。因此,我通过cool添加了relationship字段pods 插件,这样当我添加论坛主题时,我可以将其与课程和主题联系起来。但仍然存在检索问题。。。
我经常需要做一些动作,比如
全部检索quizzes 对于course (无论是否quiz 已附加到lesson 或topic全部检索quizzes 对于lesson (从lesson 和关联topics)全部检索forum topics 对于lesson (含义forum topics 与lesson topic.全部检索forum topics 对于course (含义forum topics 在整个过程中,这意味着lessons 和topics 的course.总是为了提取所需的所有内容而嵌套循环,这真的很累人。
此外,wordpress插件使用wp_postmeta 这张桌子有点吓人。我不认为一组给定的数据必须与其他插件的数据捆绑在一起有什么意义。
这让我想我应该去掉所有存储在wp_postmeta 而是为course, lesson, topics, quizzes, assignments. 这样的测验,我可以设置course_id, lesson_id, topic_id 这样我就可以很容易地找回quizzes 绑定到course, lesson, 或topic. 同样适用于forum topics. 这意味着在quiz 桌子喜欢
id quiz_id post_id id_type
1 2 5 course
2 2 12 topic
3 2 21 lesson
etc
但我不会有成千上万的测验!我想不出一种更干净的方法来提取我需要的数据。我真的厌倦了
get_posts 具有
args 这不允许我在单个查询中获得所需的内容。
很好奇其他人是怎么处理的。我来自laravel dev,我喜欢这样一个事实:我可以定义一个模型onetomany 和manytoone 实体。这样我就能做到
$courses->topics
$courses->quizzes
$courses->forums
$courses->lessons->forums
$courses->topics->quizzes
这样工作真是太棒了。
最近,当我使用wordpress时,我得到的印象是,由于wp_postmeta 桌子
但也许我错过了什么。大概wp_postmeta 是一件美丽的事情,而我却看不到它的美丽。
那么,有人能提供一个好的方法来检索我正在寻找的数据吗?
谢谢
布莱恩