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

如何将Youzify格式化的BuddyPress活动流内容封装为WordPress短代码

解决方案

问题根因

你直接include模板文件报错的核心原因是:BuddyPress和Youzify的活动流模板依赖提前加载的核心类、全局变量、工具函数,直接引入文件时这些前置依赖未被初始化,因此会触发大量未定义报错。另外你参考代码里存在低级错误:注册短代码时指定的回调函数名是activity_stream_func,实际定义的函数名是activity_stream,二者不匹配本身就会导致短代码失效。

正确实现代码

直接使用Youzify官方提供的活动流渲染方法,不需要手动引入模板文件:

add_shortcode( 'activity_stream', 'activity_stream_func' );
function activity_stream_func( $atts ) {
    // 可选:定义短代码参数,比如指定要加载的活动数量、用户ID等
    $args = shortcode_atts( array(
        'per_page' => 10,
        'user_id' => 0, // 0表示加载所有用户活动
        'scope' => 'all',
    ), $atts );

    // 入队活动流依赖的样式和脚本,保证嵌入页面样式和原生一致
    wp_enqueue_style( 'youzify-activity' );
    wp_enqueue_script( 'youzify-activity' );

    ob_start();

    // 调用Youzify官方活动流渲染函数
    if ( function_exists( 'youzify_activity' ) ) {
        youzify_activity( $args );
    } elseif ( function_exists( 'bp_get_activity_template' ) ) {
        // 回退到BuddyPress原生渲染方法
        bp_get_activity_template( $args );
    }

    $output = ob_get_clean();
    return $output;
}

调用说明

  • 直接在需要嵌入活动流的页面、文章、自定义HTML模块中使用[activity_stream]短代码即可
  • 如果需要自定义显示规则,可以传参调用,比如只显示15条动态:[activity_stream per_page=15],只显示ID为2的用户动态:[activity_stream user_id=2]

内容的提问来源于stack exchange,提问作者Otávio T.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:39:03