Php 查询以获取learndash主题
我有一个learndash网站,里面有一些课程,每个课程都有副主题来组成课程。我需要生成一个已发布课程及其子主题的列表。我对获取课程的查询:Php 查询以获取learndash主题,php,wordpress,Php,Wordpress,我有一个learndash网站,里面有一些课程,每个课程都有副主题来组成课程。我需要生成一个已发布课程及其子主题的列表。我对获取课程的查询: $args= array('post_type' => 'sfwd-courses', 'post_status' => 'publish', 'order' => 'DESC', 'orderby' => 'ID', 'mycourse
$args= array('post_type' => 'sfwd-courses',
'post_status' => 'publish',
'order' => 'DESC',
'orderby' => 'ID',
'mycourses' => false);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
endwhile;
这将返回已发布的课程。现在我需要得到每门课程的副主题。主题的帖子类型是“sfwd topic”,但我不明白这两个主题是如何关联的,所以我可以查询它。我这样做的方法很少。这将是我所知道的最简单的方法,如果你不涉及子主题或类似的内容 您需要为主题本身运行第二个查询。如果你的课程深度不超过2个级别,或者你的子主题没有达到每门课程的数百个级别,那么你不应该遇到任何性能问题 在while循环中,构建数组$argsTwo,就像创建$args一样,并设置
'post\u type'=>'sfwd topic'
$argsTwo = array('post_type' => 'sfwd-topics',
'post_status' => 'publish',
'order' => 'DESC',
'orderby' => 'ID',
);
然后,添加另一个while循环并遍历子主题
while ( $loop->have_posts() ) : $loop->the_post();
$argsTwo = array('post_type' => 'sfwd-topics',
'post_status' => 'publish',
'order' => 'DESC',
'orderby' => 'ID',
);
$loopChild = new WP_Query( $argsTwo );
while ( $loopChild->have_posts() ) : $loopChild->the_post();
endwhile;
endwhile;
这将获得当前帖子的子主题,这是您的课程之一。以您喜欢的格式回显所需的POST值
当父循环移动到下一篇文章时,它将再次通过子循环获取新文章的所有子主题。祝你好运
EDIT几乎忘记了,新查询将获得所有主题,而不是相关主题,而不引用$argsTwo中的父主题
您需要将父ID添加到$argsTwo中的'post\u parent'
键中,如下所示:
$argsTwo = array(
'post_type' => 'sfwd-topic',
'post_status' => 'publish',
'order' => 'DESC',
'orderby' => 'ID',
'post_parent' => $loop->ID
);
此查询返回一些相关主题,而不是所有相关主题将“每页帖子”=>-1添加到数组中。