You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LearnPress 4.x的课程归档页每个课程卡片中显示ACF自定义字段duration

如何在LearnPress 4.x的课程归档页每个课程卡片中显示ACF自定义字段duration

我之前折腾LearnPress 4.x的时候也碰到过类似的钩子失效、模板找不到的问题,给你分享两个亲测有效的方案,都是基于子主题操作,完全不用担心破坏原插件和主题的结构:

方案一:用LearnPress 4.x正确的循环钩子(推荐)

LearnPress 4.x对课程循环的钩子做了重构,你之前用的learn-press/after-courses-loop-item这类都是旧版本的钩子,自然不会生效。新版的钩子都是以learnpress/course/loop/item/开头的,精准对应课程卡片里的各个位置。

比如你要在课程标题之后显示时长,直接在子主题的functions.php里加这段代码就行:

add_action( 'learnpress/course/loop/item/after-title', 'display_acf_duration_in_course_card' );
function display_acf_duration_in_course_card() {
    // 先拿到当前循环里的课程对象
    $course = learn_press_get_course();
    if ( !$course ) return;
    
    // 用ACF的get_field获取duration字段,第二个参数传课程ID
    $duration = get_field( 'duration', $course->get_id() );
    
    // 有值才显示,避免空内容
    if ( $duration ) {
        echo '<div class="course-duration" style="margin: 8px 0; color: #666;">时长:' . esc_html( $duration ) . '</div>';
    }
}
  • 如果你觉得位置不对,还可以换其他钩子:比如learnpress/course/loop/item/before-price(价格之前)、learnpress/course/loop/item/after-price(价格之后),都是每个课程卡片内部触发的。
  • 注意duration要和你ACF里创建的字段键名完全一致,别写错了。

方案二:正确覆盖LearnPress的课程卡片模板

你之前改content-course.php没反应,是因为LearnPress 4.x已经把课程卡片的模板拆分到新路径了,旧的模板文件已经被弃用。现在课程卡片的核心模板是learnpress/templates/course/loop/item.php(插件目录下的路径)。

要在子主题里覆盖这个模板:

  1. 在你的子主题目录下创建路径:learnpress/course/loop/
  2. 把插件里的item.php文件复制到子主题的这个路径下
  3. 打开子主题里的item.php,在你想要显示时长的位置(比如标题和价格之间)插入这段代码:
<?php
$course = learn_press_get_course();
$duration = get_field( 'duration', $course->get_id() );
if ( $duration ) :
?>
<div class="course-duration" style="margin: 8px 0; color: #666;">时长:<?php echo esc_html( $duration ); ?></div>
<?php endif; ?>

这种方法的好处是可以完全自定义HTML结构,适合需要调整卡片布局的场景;缺点是如果以后LearnPress更新了这个模板的核心代码,你可能需要同步子主题里的模板内容(不过一般插件不会轻易改核心循环的结构)。

最后再提两个注意点

  1. 不管用哪种方法,都必须在子主题里操作,别直接改插件文件,不然插件一更新你的修改就没了。
  2. 确保你的ACF字段是绑定到LearnPress的「课程」自定义文章类型的,不然get_field会拿不到值。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 07:24:31