繁体   English   中英

如何在learndash课程中获得第一个主题

How to get the first topic in a lesson in learndash

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想在 learndash 的课程中​​检索第一个主题并通过它重定向它。 但由于某种原因,我不知道该怎么做。

我检查了 API 并没有看到任何合适的过滤器/钩子。

这是我的代码:

  function redirect_to_first_topic() {
// We only want to do this for Topics. But the below code can be adapted to work for Lessons
global $post;
$post_id = $post->ID;

if ( get_post_type( $post_id ) == 'sfwd-lessons' ) {
    $progress = learndash_get_course_progress( null, $post_id );
    $link = $progress['next'];

    $parent_lesson_id = learndash_get_setting( $post, 'topic' );
    $parent_lesson = get_post( $parent_lesson_id );
    var_dump($parent_lesson);
}

// Always return $link
// return $link;

}

add_action('wp', 'redirect_to_first_topic');

所以基本上我在这里做的是让父母得到教训。

2 个回复

有点晚了,但它会帮助别人。 您可以查看如何获得 1. 课程的教训,并在需要时深入了解 fe。 第一课的第一个主题等等:

add_action( 'template_redirect', 'course_overview_redirect' );

function course_overview_redirect() {
global $post;

if ( ! empty( $post ) && $post->post_type == 'sfwd-courses' && ! empty( $post->ID ) ) {

    $lessons = learndash_get_course_lessons_list( $post->ID );

    if ( ! empty( $lessons ) ) {
        $lesson = array_shift( $lessons );

        if ( ! empty( $lesson ) ) {
            $url = get_permalink( $lesson[ "post" ]->ID );

            if ( ! empty( $url ) ) {   
                wp_redirect( esc_url( $url ) );  // And redirect if needed
                exit;
            }
        }
    }
}
}

您可以添加这样的按钮;

$args = array(
    'posts_per_page' => -1,
    'post_type' => 'sfwd-lessons', // you can change here to find topics : 'sfwd-topics'
    'suppress_filters' => true,
    'fields' => 'ids',
    'orderby' => 'menu_order', // ordering by menu_order will show lesson list, in their order in course. 
    'order' => 'ASC',
    // this meta query is used if you want to search a lesson under a course, or if you search for a topic which is in a course but not under a lesson                      
    'meta_query' => array(      
                 array(
                    'key'     => 'course_id',
                    'value'   => $course_id, // this is id of your course
                 )
    // if your topic is under a lesson than you should add lesson meta query
    // your meta query should be changed like below
    /* 
    'meta_query'     => array(
        'relation' => 'AND',
        array(
            'key'   => 'course_id',
            'value' => $course_id,
        ),
        array(
            'key'   => 'lesson_id',
            'value' => $lesson_id,
        ),
    ),
    */
            ),                  
    
);

$all_lessons = get_posts($args);    

$first_lesson = $all_lessons[0]; // taking directly first element of array  

$button_html = '<a href="' . esc_url( get_post_permalink( $first_lesson ) ) . '" class="button">' . __( 'Start the course', 'custom-text' ) . '</a>';
1 LearnDash 课程_完整简码

我正在使用 LearnDash for WordPress 并尝试编写自定义短代码。 我需要一个短代码,可以在课程完成时显示特定文本。 我对 WordPress 功能或编写短代码并不擅长(一点也不擅长!),但我真的需要这个! 我希望能够在一些文本周围包裹短代码,并且只有在当前课程完成时才显示文本 ...

3 Learndash更改每门课程的课程/课程/主题名称

有没有一种方法可以针对每个课程从“课程”-&gt;“课程”-&gt;“主题约定”更改LearnDash中的默认命名约定? 尽管无法在我能找到的每门课程上进行更改,但是有一种方法可以在全局范围内进行更改。 我们所有的课程都不遵循相同的结构,因此,如果我们能够以某种方式在每门课程的基础上以编程方式更 ...

4 查询以获取Learndash主题

我有一个Learndash网站,其中有几门课程,每门课程都带有子主题来构成本课程。 我需要生成已发布课程及其下的子主题的列表。 我查询课程的查询: 这将返回已发布的课程。 现在,我需要获得每个课程下的子主题。 主题的帖子类型为“ sfwd-topic”,但我不了解两者之间的关系, ...

5 Learndash - 将主题类别添加到

我需要将learndash的主题类别插入&lt;body class=""&gt;就像&lt;body class="ld-topic-categorie-one"&gt; 我遇到的问题是 learndash 将主题类别插入到&lt;article&gt;标签中,这给了我一些限制。 我可以在标准 ...

6 DDD主题-课程关联AggregateRoot

我是DDD新手。 我有一个主题实体和一个课程实体。 主题有许多教训 。 我需要添加/删除主题以及课程 。 我应该为实体创建两个不同的存储库,还是仅创建一个处理所有课程的TopicRepository? 这是经典的Order-OrderItem模型吗? 谢谢 ...

7 Learndash 如何从课程 ID 中获取课程标题

我查看了 Learndash 文档,但找不到从课程 ID 中获取课程标题的函数。 有谁知道如何做到这一点或有一些示例代码? 登录的用户可以看到他们获得的证书,以便他们可以单击链接并下载任何证书。 以下是我目前拥有的代码。 我将当前注册的课程列表放入$arr1数组中。 这是一个Course IDs数 ...

8 第一课android

当我开始在android设备中应用时,单击inly按钮后应用程序崩溃,这意味着进行下一个活动的意图不起作用,但是我不知道我的错误在哪里,我确定拼错了什么,但是在哪里? 这是MainActivity,我认为这是错误,但我不知道在哪里: 清单中是否有有用的东西: ...

9 给定 C# 中的课程时间范围集合,如何获取当前课程?

我正在使用 Windows 窗体和 C# 为学校制作时间表程序。 学校使用 API 返回包含课程列表的 JSON 对象。 在每节课的信息中,有该课的时间段,以表格形式显示; hh:mm - hh:mm (24 小时格式)。 给定课程时间和当前时间,我需要找到当前课程。 提前致谢 ...

10 如何在LearnDash中显示小组进度

在LearnDash中,是否可以使用简码或类似方法显示整个小组的进度? 我所能找到的只是某个用户的进度,而不是整个团队的进度。 例如。 在5人一组中,有4人完成了课程。 因此,完成率应该是80%/ 100%,无论如何我可以向组长证明吗? 每个人在任何课程[learndash_c ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM