我需要更改buddypress主题(wordpress)中的函数

我需要更改buddypress主题(wordpress)中的函数,wordpress,function,buddypress,Wordpress,Function,Buddypress,我正在使用buddypress主题[buddyboss]()。主要原因是这个主题能够管理一个图片库(这非常有效) 现在我想在members循环中调用picture函数。buddyboss的一位管理员告诉我: “您将需要buddy_boss_pics.php中的函数。具体来说,您需要使用buddyboss_pics_screen_picture_grid_content()函数,从第285行开始。您需要编辑该文件以使用成员循环,因为它当前使用显示的用户id。” 函数的外观如下所示: functio

我正在使用buddypress主题[buddyboss]()。主要原因是这个主题能够管理一个图片库(这非常有效)

现在我想在members循环中调用picture函数。buddyboss的一位管理员告诉我:

“您将需要buddy_boss_pics.php中的函数。具体来说,您需要使用buddyboss_pics_screen_picture_grid_content()函数,从第285行开始。您需要编辑该文件以使用成员循环,因为它当前使用显示的用户id。”

函数的外观如下所示:

function buddyboss_pics_screen_picture_grid_content()
{
    global $bp, $wpdb, $bbpics;

    $wpdb->show_errors = BUDDY_BOSS_DEBUG;

    $img_size = is_active_sidebar( 'Profile' ) ? 'buddyboss_pic_med' : 'buddyboss_pic_wide';

    $gallery_class = is_active_sidebar( 'Profile' ) ? 'gallery has-sidebar' : 'gallery';

    $user_id = $bp->displayed_user->id;
    $activity_table = $wpdb->prefix."bp_activity";
    $activity_meta_table = $wpdb->prefix."bp_activity_meta";

    $pages_sql = "SELECT COUNT(*) FROM $activity_table a INNER JOIN $activity_meta_table am ON a.id = am.activity_id WHERE a.user_id = $user_id AND meta_key = 'bboss_pics_aid'";

    $bbpics->grid_num_pics = $wpdb->get_var($pages_sql);

    $bbpics->grid_current_page = isset( $_GET['page'] ) ? (int) $_GET['page'] : 1;

    // Prepare a SQL query to retrieve the activity posts 
    // that have pictures associated with them
    $sql = "SELECT a.*, am.meta_value FROM $activity_table a INNER JOIN $activity_meta_table am ON a.id = am.activity_id WHERE a.user_id = $user_id AND meta_key = 'bboss_pics_aid' ORDER BY a.date_recorded DESC";

    buddy_boss_log("SQL: $sql");

    $pics  = $wpdb->get_results($sql,ARRAY_A);

    $bbpics->grid_pagination = new BuddyBoss_Paginated( $pics, $bbpics->grid_pics_per_page, $bbpics->grid_current_page );

    buddy_boss_log("RESULT: $pics");

    // If we have results let's print out a simple grid
    if ( !empty( $pics ) )
    {
        $bbpics->grid_had_pics = true;
        $bbpics->grid_num_pics = count( $pics );

任何帮助都将是伟大的,因为我真的需要这样做

未经测试-但请尝试以下方法:

在成员循环中,查找

                <?php
             /***
              * If you want to show specific profile fields here you can,
              * but it'll add an extra query for each member in the loop
              * (only one regadless of the number of fields you show):
              *
              * bp_member_profile_data( 'field=the field name' );
              */
            ?>
将buddyboss\u pics\u screen\u picture\u grid\u content()函数复制到members循环的底部

将其放在php标记之间,并将名称更改为 buddyboss\u pics\u members\u loop($user\u id)

并注释掉或删除
$user\u id=$bp->显示的用户->id

这里的buddyboss\u pics\u screen\u picture\u grid\u content()函数主要使用用户id并从数据库中获取图像

很简单,您在member-loop.php文件中调用了while循环中的函数:
buddyboss\u pics\u screen\u picture\u grid\u content(bp\u member\u user\u id())

此处传递此函数的参数成员\用户\ id

只需编辑下面的主
buddyboss\u pics\u screen\u picture\u grid\u content()
功能:

以下更改:

function buddyboss_pics_screen_picture_grid_content($user_id = null)
{

    //Remove this code
    $user_id = $bp->displayed_user->id;

    //Put new Code
    if (empty($user_id)) {
        $user_id = $bp->displayed_user->id;
    } else {
        $user_id = $user_id;
    }

}  

你可能会得到答案。嘿。。你的描述似乎很清楚,但不起作用!?!?问题是:图片网格不会显示,但所有其他用户都会消失。。。damni上传了两个示例文件。。也许你能教我怎么做对。。。
function buddyboss_pics_screen_picture_grid_content($user_id = null)
{

    //Remove this code
    $user_id = $bp->displayed_user->id;

    //Put new Code
    if (empty($user_id)) {
        $user_id = $bp->displayed_user->id;
    } else {
        $user_id = $user_id;
    }

}