Skip to:
Content
Pages
Categories
Search
Top
Bottom

Search Results for 'buddypress'

Viewing 25 results - 26 through 50 (of 69,060 total)
  • Author
    Search Results
  • emaralive
    Moderator

    For reference, see Trac ticket #9328.

    emaralive
    Moderator

    You should submit a ticket with the type set to “enhancement”, with the details you have expressed here, such that your proposal can be considered and dispatched accordingly.

    Afterwards, if you decide to submit a PR, the ticket can be referenced which will attach the PR to the ticket.

    emaralive
    Moderator

    You should submit a ticket with the type set to “enhancement”, with the details you have expressed here, such that your proposal can be considered and dispatched accordingly.

    Afterwards, if you decide to submit a PR, the ticket can be referenced which will attach the PR to the ticket.

    indigetal
    Participant

    BuddyPress’s activity component has excellent query-level extensibility:

    From BP_Activity_Activity::get() — lines 666, 682

    $where_conditions = apply_filters( 'bp_activity_get_where_conditions', $where_conditions, $r, $select_sql, $from_sql, $join_sql );
    $join_sql = apply_filters( 'bp_activity_get_join_sql', $join_sql, $r, $select_sql, $from_sql, $where_sql );
    

    These filters allow any addon to inject WHERE clauses and JOINs into the main activity query without modifying core. BuddyBoss’s moderation system, for example, hooks into bp_activity_get_where_conditions to hide suspended content — all from addon-level code.

    The messages component has **no equivalent**. BP_Messages_Thread::get_current_threads_for_user() builds its SQL in a $sql array (lines 790–794) and executes it directly:

    $sql['select'] = 'SELECT m.thread_id, MAX(m.date_sent) AS date_sent';
    $sql['from']   = "FROM {$bp->messages->table_name_recipients} r INNER JOIN {$bp->messages->table_name_messages} m ON m.thread_id = r.thread_id {$meta_query_sql['join']}";
    $sql['where']  = "WHERE {$deleted_sql} {$user_id_sql} {$sender_sql} {$type_sql} {$search_sql} {$meta_query_sql['where']}";
    $sql['misc']   = "GROUP BY m.thread_id ORDER BY date_sent DESC {$pag_sql}";
    
    $thread_ids = $wpdb->get_results( implode( ' ', $sql ) );
    

    The only filter (bp_messages_thread_current_threads) fires AFTER the query on the fully-constructed result set (line 841) — meaning addons must filter in PHP, not SQL. This is:

    1. **A performance problem** — filtering in PHP means fetching rows from the database that will be discarded, and constructing full BP_Messages_Thread objects for threads that are then thrown away. This gets worse as thread count grows.
    2. **An extensibility gap** — addons that need custom thread filtering (archiving, priority inbox, moderation, read/unread management) have no clean way to modify the query
    3. **Inconsistent with the activity API** — activity has comprehensive pre-query filters; messages doesn’t

    #### Proposed Change

    Add filter hooks to get_current_threads_for_user() before query execution, following the pattern established by BP_Activity_Activity::get():

    After building $sql array (around line 794):

    
    /**
     * Filters the WHERE SQL for the current threads query.
     *
     * @since {next_version}
     *
     * @param string $where_sql  Current WHERE clause.
     * @param array  $r          Parsed query arguments.
     * @param string $select_sql Current SELECT clause.
     * @param string $from_sql   Current FROM clause (includes JOINs).
     */
    $sql['where'] = apply_filters( 'bp_messages_thread_get_where_conditions', $sql['where'], $r, $sql['select'], $sql['from'] );
    
    /**
     * Filters the FROM/JOIN SQL for the current threads query.
     *
     * @since {next_version}
     *
     * @param string $from_sql   Current FROM clause (includes JOINs).
     * @param array  $r          Parsed query arguments.
     * @param string $select_sql Current SELECT clause.
     * @param string $where_sql  Current WHERE clause.
     */
    $sql['from'] = apply_filters( 'bp_messages_thread_get_join_sql', $sql['from'], $r, $sql['select'], $sql['where'] );
    

    **Note on parameter style:** In BP_Activity_Activity::get(), the WHERE conditions are passed as an array (joined to a string after the filter), whereas in the messages method they are already a string. This proposal preserves the existing messages code structure and filters the string directly, which is the minimal-change approach. If BP maintainers prefer, the messages SQL could also be refactored to use an array of conditions for parity with activity — but filtering the string is sufficient for all the use cases described below.

    #### Scope

    • ~12 lines added to one file (class-bp-messages-thread.php)
    • Zero behavioral change — the filters pass through existing values by default
    • Follows the pattern established by the activity component’s existing filters
    • The existing bp_messages_thread_current_threads post-query filter continues to work as-is

    #### What This Enables for Addons

    With these hooks, addon plugins can implement:

    • **Message archiving** — Add is_hidden column to bp_messages_recipients, filter WHERE to exclude r.is_hidden = 1
    • **Message soft-delete** — Add is_deleted column to bp_messages_messages, filter FROM/JOIN to exclude deleted messages from thread listing
    • **Content moderation** — Inject suspend/block conditions into thread queries
    • **Priority inbox** — Filter by custom meta or thread properties
    • **Group messaging** — Filter threads by group membership context

    None of these features require core changes — they just need the ability to modify the query, which activity already provides but messages doesn’t.

    #### Prior Art

    BuddyBoss Platform needed exactly these extension points. Because the hooks don’t exist in BuddyPress core, BuddyBoss had to:

    1. **Restructure get_current_threads_for_user()** entirely — they replaced it with a delegating call to a new get_threads_for_user() method containing ~400 lines of rewritten SQL logic
    2. **Add is_hidden and is_deleted columns** directly into the restructured query conditions
    3. **Add their own filter hooks** — bp_messages_recipient_get_where_conditions and bp_messages_recipient_get_join_sql — with signatures functionally identical to what this proposal suggests

    The fact that BuddyBoss independently arrived at the same solution (pre-query filter hooks on the messages SQL) validates the need. If these hooks had existed in BuddyPress core, BuddyBoss could have achieved the same result from addon-level code without forking the class.

    I’m happy to submit a PR for this change.

    indigetal
    Participant

    BuddyPress activities have a single visibility control: hide_sitewide (0 or 1). This provides binary visibility — shown everywhere, or hidden from sitewide feeds. There’s no way to express:

    – **”Only me”** — private activity visible only to the author
    – **”Friends only”** — visible only to the author’s friends
    – **”Logged-in users”** — hidden from anonymous visitors
    – **”Group members only”** — visible only within the group context where it was posted

    Per-item privacy is a foundational social platform feature. Facebook has had it since 2009. LinkedIn, Twitter/X (with protected tweets), Instagram, and every major social network support some form of per-post audience control. It’s as fundamental to a social platform as hide_sitewide is — just multi-valued instead of binary.

    This is not a request for any specific addon’s needs. It’s a request for the same kind of infrastructure that hide_sitewide provides — a first-class column that any addon can use to implement privacy-aware features.

    #### Current State

    BuddyPress 14.4.0’s activity query system is well-designed for extensibility:

    bp_activity_get_where_conditions lets addons inject WHERE clauses
    bp_activity_get_join_sql lets addons add JOINs
    – Data hydration uses SELECT * (in populate() and the cache-miss path of get()), so any column added to the table is automatically returned to calling code
    bp_activity_before_save / bp_activity_after_save provide save-time hooks

    An addon **can** add a privacy column via dbDelta and filter queries via bp_activity_get_where_conditions. However, the save() method has a hardcoded column list in its INSERT/UPDATE SQL (in BP_Activity_Activity::save()), meaning an addon must do a separate $wpdb->update() after every save — a double-write on every activity creation. This works but is suboptimal, and the column’s general-purpose nature (used by media addons, document addons, moderation addons, group addons — not just one feature) argues for core inclusion.

    #### Proposed Change

    **Schema:** Add one column + index to bp_activity in bp_core_install_activity_streams() (in bp-core-admin-schema.php). dbDelta() handles adding the column on upgrade automatically:

    sql

    
    -- Added after the existing <code>is_spam</code> column in the CREATE TABLE definition:
    privacy varchar(75) NOT NULL DEFAULT 'public',
    -- Added to the KEY list:
    KEY privacy (privacy)
    

    **Model class (BP_Activity_Activity):**

    1. Add public $privacy = 'public'; property
    2. In save() — add privacy to the INSERT/UPDATE column list alongside the existing columns (user_id, component, type, action, content, etc.)
    3. In get() — add 'privacy' to the $r defaults (default false, meaning no filtering). When set, add AND a.privacy IN (...) to the WHERE conditions.

    **REST API (BP_REST_Activity_Endpoint):**

    4. In prepare_item_for_response() — expose privacy in the response object (paralleling how hide_sitewide is currently exposed as hidden)
    5. In prepare_item_for_database() — accept privacy as a writable field on create/update

    **Migration:** dbDelta() runs on every upgrade via bp_core_install(), so modifying the CREATE TABLE definition is sufficient for the schema change. A DB version bump in bp-core-update.php tracks the upgrade.

    #### Scope

    – ~40 lines of changes across 4 files (bp-core-admin-schema.php, class-bp-activity-activity.php, class-bp-rest-activity-endpoint.php, bp-core-update.php)
    – Default value 'public' — 100% backward compatible
    – Existing queries that don’t pass privacy return all activities as before
    hide_sitewide continues to work as-is (orthogonal — hide_sitewide controls directory listing, privacy controls per-item access)

    #### What Core Provides vs. What Addons Handle

    To be explicit about scope: this proposal adds **storage and query filtering only**. Core would:

    – Store the privacy value on each activity row
    – Allow get() callers to filter by privacy value(s)
    – Expose/accept the field through the REST API

    Core would **not** need to:

    – Define a fixed set of allowed values (addons register the values they need — e.g., 'onlyme', 'friends', 'loggedin')
    – Enforce access control based on privacy values (addons hook into bp_activity_get_where_conditions to inject viewer-aware WHERE clauses, exactly as they would today for any custom filtering)
    – Provide UI for selecting privacy (addon/theme territory)

    This mirrors how hide_sitewide works today — core stores the flag and filters on it; the decision of *when* to set it is made by callers (groups component, plugins, etc.).

    #### Prior Art

    BuddyBoss Platform (a BuddyPress-derived platform) implemented this exact column. Their bp_activity schema includes privacy varchar(75) NOT NULL DEFAULT 'public', and their media, document, video, and moderation subsystems all depend on it for privacy filtering. The column is referenced in their activity save/query paths, REST API, and template layer — making it one of the most cross-cutting additions they made to the activity table. The fact that an independent platform needed this to build standard social features demonstrates both the demand and the general-purpose nature of the column.

    I’m happy to submit a PR for this change.

    emaralive
    Moderator

    By default, BuddyPress utilizes the “rewrites” URL parser which creates an equivalent of “pages” which are located from the dashboard @ Settings -> Buddypress -> URLs.

    If you require “pages” then you will have to install and activate the BP Classic add-on/plugin of which BuddyPress associated pages will show within WordPress “Pages”.

    As for wpForo, they claim integration with BuddyPress, so you should ask your integration questions within their wpForum Integration forum.

    #339023
    johnackerman
    Participant

    Hi everyone,

    I’m running a BuddyPress-powered site and noticing the activity stream getting slow as user activity grows, even with caching enabled. It starts to feel heavy once groups, friendships, and posts increase.

    How are others keeping BuddyPress fast and scalable while using the core social features?

    Appreciate any insights.

    #339021
    Steve
    Participant

    Hello,

    Can I please ask what’s the best way to learn about BuddyPress.

    I have looked for tutorials on Youtube but the ones I found are 7 or 8 years out of date. So difficult to get an overview.

    I will install the BuddyPress plugin and try and figure things out from scratch if I have to but was just hoping for some background first.

    Any suggestions greatly appreciated.

    Best Regards,

    Steve

    P.S. Above the form that I’m using to make this request it says to include the wordpress, buddypress versions. I haven’t installed anything yet but they will be the latest as I’m starting from scratch.

    emaralive
    Moderator

    Wordfence posted this alert on January 22, 2026, which can be found here. Similarly, Patchstack had reported the alert on January 23, 2026, which can be found here.

    In either case, both sites indicate that this was patched in BuddyPress version 14.3.4, which the release was announced in March of 2025, approximately 10 months ago. See the following:

    Additionally, in the future, you may want to consider refraining from double posting.

    #338980
    emaralive
    Moderator

    @divinel,

    There may be some confusion as to what should transpire here. I believe what was expected was that you would share the data from an “error log” as opposed to the generic WordPress (WP) error message of “There has been a critical error on this website.”

    The link that is included in the generic WP error message should have eventually led you to information regarding, to paraphrase, “How to Troubleshoot” for example, this situation may be related to a “plugin conflict” whereby steps could be taken to isolate the conflict, see A Plugin is causing compatibility issues. Have you tried deactivating plugins other than BuddyPress in an attempt to determine whether a “plugin conflict” exists?

    Furthermore, there is information about Debugging in WordPress, this information will help you configure WP such that you could provide/share error data from an error log, which is what the other moderator was asking you to share.

    Note: there are plugins that can facilitate the configuration for debugging, that information is found near the bottom of the “Debugging in WordPress” page.

    #338977
    emaralive
    Moderator

    For reference, the topic owner (TO) has opened trac ticket 9325

    #338974
    emaralive
    Moderator

    What is the model of the iPhone and what is the version of the Safari browser that you are using?

    Better yet, a ticket might be more appropriate for this situation, use the following link to submit a ticket:

    https://buddypress.trac.wordpress.org/newticket

    #338972
    sunil1988lits
    Participant

    The cover image upload button is not working due to a JavaScript error, which is why the upload popup does not open.
    This issue is not caused by the theme or any custom code.
    It appears to be a BuddyPress plugin–related issue.

    Please test this on Safari browsers and inspect the JavaScript console for errors.

    #338968
    emaralive
    Moderator

    AFAIK, the ability to upload a cover image with the Twenty Twenty-Five theme is the same as the Twenty Eleven theme, which was posted here.

    #338967
    divinel
    Participant

    Hi!

    Do you have any updates on helping me with the BuddyPress plugin, as it has been a week, and the plugin still doesn’t work for me?

    Divine

    emaralive
    Moderator

    This appears to be a duplicate topic thus closing this topic.

    See User Profile Cover Image Upload Not Working on iPhone.

    #338949
    emaralive
    Moderator

    I was able to locate someone with an iPhone and I wasn’t able to duplicate the issue you described:

    With:

    • WordPress 6.9
    • BuddyPress 14.4.0
    • Twenty Eleven theme
    • iPhone 16 Pro
    • ios 26.2 <- Safari browser

    Steps:
    Pressing the “Select your file” button produces the following selections:

    • Photo Library
    • Take Photo or Video
    • Choose file

    Selected and uploaded a photo from the “Photo Library” which uploaded successfully, i.e., “Your new cover image was uploaded successfully”.

    #338944
    emaralive
    Moderator

    You appear to be double posting, see User Profile Cover Image not uploading in the Iphone Safari Browser.

    The difference is the other topic specifies the Safari browser. Is this isolated to the Safari browser or do other installable browsers have this same issue as well? Additionally, what theme is being used on the website?

    Just so you know, I don’t have an Iphone, so I’ll have to check and see if someone on the team has one and can duplicate this issue.

    #338940
    emaralive
    Moderator

    The standard message for BuddyPress (BP) is “Sorry, that username already exists!” which appears to differ from what you’ve indicated, perhaps you elaborate as to why there is a difference. Furthermore, additional info would be helpful, such as:

    • Is this is “single site” or “multisite” installation?
    • Is this the “standard” or “membership requests” registration process?
    • Can the assumption be made that BP 14.4.0 is currently installed?
    #338931
    emaralive
    Moderator

    Is this a plugin (featured group) that is separate from BuddyPress?

    #338927
    steve shiner
    Participant

    HI i haev tried to add featured groups to my side bar as a widget .The groups show but the css background colour is wrong and html code is showing – the function is not working all the other buddypress featuired members etc all work fine but not groups

    sv8bur
    Participant

    I have the same problem I work wordpress on a raspberry PI When I istall buddypres and try to create a group I am taking the wrong error “Not Found
    The requested URL was not found on this server.

    Apache/2.4.65 (Debian) Server at wpress Port 80”

    Thank you for your help
    ———————-
    I wand to add that I have no such a problem under “XAMPP” at WIN 11, the above mention proble it happens also to other pages like “friends”, “members”, “Activity”, the theme I am using is the “Di Blog”
    Thank you again

    Moved from: Reply To: The URLs to the pages are not working!

    #338916
    emaralive
    Moderator

    For reference on “Caps lock is on” warning – see trac ticket 9324.

    #338915
    divinel
    Participant

    Hi!

    Thank you for your reply.

    “There has been a critical error on this website.” That is exactly what is written on the error page. And then goes on to say, “Learn more about troubleshooting WordPress.”

    activity page

    I’m not sure if I am supposed to edit through Customise, as I noticed you can customise the BuddyPress Nouveau, which includes the front page of the Group and Member, as well as the Directory layouts. I don’t know if that means anything.

    Divine

    #338914
    emaralive
    Moderator

    The “Caps lock is on” message and the large “top arrow” indicates that the file containing the CSS rule for the warning has not been enqueued. This feature was first introduced in WordPress 6.9 and can be duplicated when the BP Nouveau template pack is active, however, this should not prevent the registration of new members.

    When time allows, I’ll open a ticket to address the issue of “Caps lock is on” and large icon showing when the registration page is first displayed/rendered when the BP Nouveau template pack is active/enabled. The workaround, for now, is to perform one of the following:

    • Click anywhere on the page to dismiss the warning message and icon. Note: the warning message & associated icon will reappear if “Caps lock” is enabled on a new registrant’s keyboard
    • Temporarily switch to the BP Legacy template pack until a fix has been implemented in a new BuddyPress release.
    • Roll back to WordPress version 6.8.x (current version of the WordPress 6.8 branch) until a fix has been implemented in a new BuddyPress release.

    As to “Can’t register new users”, you will have to provide additional info/details as to what part of the registration flow is preventing the completion for new registrations.

Viewing 25 results - 26 through 50 (of 69,060 total)
Skip to toolbar