Skip to:
Content
Pages
Categories
Search
Top
Bottom

Forum Replies Created

Viewing 2 replies - 1 through 2 (of 2 total)

  • Luke Gedeon
    Member

    @lgedeon

    I found a solution for my version of the problem and learned a few things along the way that might help with your BuddyPress avatar problems.

    Full text at: http://luke.gedeon.name/buddypress-wrong-avatar-fix.html

    What I found:

    In the file /wp-content/plugins/buddypress/bp-core/bp-core-avatars.php, lines 344 and following contain the following code:

    global $authordata;

    if ( is_object( $user ) )

    $id = $user->user_id;

    else if ( is_numeric( $user ) )

    $id = $user;

    else

    $id = $authordata->ID;

    if ( empty( $id ) )

    return $avatar;

    I think that last “if statement” may be there to catch cases where the commenter does not have a BuddyPress account (which is the majority on my site at this point). However, if you look closely at the block just above the “if ( empty( $id))” you will notice $id is never going to be empty at this point.

    That suggests two possible solutions.

    Solution 1:

    I have not tested this, but it makes sense that you could move the last “if statement” above the first “if statement.” That way you can check for “empty( $id )” before it gets set to”$authordata->ID”

    Solution 2:

    I found it works quite well to add these lines just under the last “if statement.”

    if ( is_string( $user ) )

    return $avatar;

    This will catch any case where an email is sent as input, which is what all (most) non-buddypress themes send. Cases where numbers or objects are sent (the BuddyPress method) will be handled normally.

    Maybe I can get this added into the next release of BuddyPress.


    Luke Gedeon
    Member

    @lgedeon

    I found a solution for my version of the problem and learned a few things along the way that might help with you BuddyPress avatar problems.

    Full text at: http://luke.gedeon.name/buddypress-wrong-avatar-fix.html

    What I found:

    In the file /wp-content/plugins/buddypress/bp-core/bp-core-avatars.php, lines 344 and following contain the following code:

    global $authordata;

    if ( is_object( $user ) )

    $id = $user->user_id;

    else if ( is_numeric( $user ) )

    $id = $user;

    else

    $id = $authordata->ID;

    if ( empty( $id ) )

    return $avatar;

    I think that last “if statement” may be there to catch cases where the commenter does not have a BuddyPress account (which is the majority on my site at this point). However, if you look closely at the block just above the “if ( empty( $id))” you will notice $id is never going to be empty at this point.

    That suggests two possible solutions.

    Solution 1:

    I have not tested this, but it makes sense that you could move the last “if statement” above the first “if statement.” That way you can check for “empty( $id )” before it gets set to”$authordata->ID”

    Solution 2:

    I found it works quite well to add these lines just under the last “if statement.”

    if ( is_string( $user ) )

    return $avatar;

    This will catch any case where an email is sent as input, which is what all (most) non-buddypress themes send. Cases where numbers or objects are sent (the BuddyPress method) will be handled normally.

    Maybe I can get this added into the next release of BuddyPress.

Viewing 2 replies - 1 through 2 (of 2 total)
Skip to toolbar