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

求助:如何在LearnPress插件中为自定义标签添加后台文本字段

解决LearnPress自定义标签页对应后台文本字段的问题

我来帮你搞定这个问题!要给新增的「Entry Requirements」标签页在后台课程编辑界面添加对应的文本输入字段,你可以通过以下步骤实现,主要用到LearnPress的钩子和WordPress的元字段功能:

步骤1:在后台课程编辑页面添加自定义字段

你需要在主题的functions.php文件或者自定义插件里添加以下代码,用来在课程编辑界面插入一个可编辑的文本区域:

// 向课程编辑页面添加自定义元字段
add_action( 'learn_press_course_settings_meta_box', 'add_entry_requirements_meta_field' );
function add_entry_requirements_meta_field() {
    global $post;
    // 获取已保存的元字段值,用于回显
    $entry_requirements = get_post_meta( $post->ID, '_lp_entry_requirements', true );
    ?>
    <div class="lp-metabox-content">
        <h4><?php esc_html_e( 'Entry Requirements', 'your-text-domain' ); ?></h4>
        <textarea name="lp_entry_requirements" rows="6" style="width:100%;"><?php echo esc_textarea( $entry_requirements ); ?></textarea>
        <p class="description"><?php esc_html_e( '填写该课程的入门要求,内容会同步显示到前端的Entry Requirements标签页', 'your-text-domain' ); ?></p>
    </div>
    <?php
}

步骤2:保存自定义字段的值

添加保存钩子,确保后台填写的内容能被正确保存到数据库:

// 保存自定义元字段的值
add_action( 'learn_press_save_course', 'save_entry_requirements_meta_field' );
function save_entry_requirements_meta_field( $post_id ) {
    // 权限与请求验证
    if ( ! current_user_can( 'edit_post', $post_id ) ) {
        return;
    }
    if ( isset( $_POST['lp_entry_requirements'] ) ) {
        update_post_meta( $post_id, '_lp_entry_requirements', sanitize_textarea_field( $_POST['lp_entry_requirements'] ) );
    } else {
        delete_post_meta( $post_id, '_lp_entry_requirements' );
    }
}

步骤3:在前端标签页渲染保存的内容

如果你之前已经通过钩子添加了「Entry Requirements」标签页,只需要修改对应的内容回调部分,调用保存的元字段值即可:

// (如果未添加标签页,先执行这段添加标签页的代码)
add_filter( 'learn_press_course_tabs', 'add_entry_requirements_tab' );
function add_entry_requirements_tab( $tabs ) {
    $tabs['entry_requirements'] = array(
        'title'    => esc_html__( 'Entry Requirements', 'your-text-domain' ),
        'content'  => 'render_entry_requirements_tab_content', // 内容回调函数
        'priority' => 20, // 调整标签在前端的显示顺序
    );
    return $tabs;
}

// 标签页内容渲染回调
function render_entry_requirements_tab_content() {
    global $post;
    $entry_requirements = get_post_meta( $post->ID, '_lp_entry_requirements', true );
    if ( ! empty( $entry_requirements ) ) {
        echo wpautop( esc_html( $entry_requirements ) ); // 自动添加段落格式,优化显示
    } else {
        echo esc_html__( '暂无入门要求信息', 'your-text-domain' );
    }
}

注意事项

  • 记得把代码里的your-text-domain替换为你的主题或自定义插件的文本域,方便后续国际化适配。
  • 测试时先在后台编辑课程填写内容,刷新前端课程页面,确认内容是否正常显示。
  • 如果之前已经添加过标签页代码,只需替换内容回调部分即可,无需重复添加标签页注册的钩子。

内容的提问来源于stack exchange,提问作者SAYED RAHMAN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:30:39