BuddyPress · BuddyBoss · Activity feed

Your best post is buried by lunchtime. Pin it so nobody misses it.

Pin any activity to the top of the sitewide stream, a group feed, or a member profile. It stays there until you unpin it or it expires.

★★★★★ Works with BuddyPress and BuddyBoss Platform · Per-user pin quotas · Auto-expiry on a cron · REST and WP-CLI

yourdomain.com/activity
Community Teampinned to the top

Welcome to the community. Read the guidelines before your first post.

Maya Singh8 minutes ago

Just shipped my first plugin. Thanks everyone for the help.

Dev Park22 minutes ago

Office hours this Friday at 3pm UTC. Bring your questions.

3 feeds you can pin to - the sitewide activity stream, any BuddyPress group, and a member's own profile, each managing its pins separately
1 pin per member by default - the per-user quota stops any single person from filling the top of the feed, and you can raise it or set 0 for unlimited
0 manual cleanup needed - auto-expiry unpins time-sensitive posts on its own when the window you set runs out

Built for

Built for six kinds of communities.

Each feed starts holding pins the day you activate the plugin. Pick the scenario closest to your community.

01

BuddyPress community managers

Pin a welcome post or community rules to the top of the sitewide stream so every member sees them first. Set a per-user quota so the feed stays curated and one member cannot monopolize the top.

02

Group organizers

Group admins and moderators pin announcements inside their own group without needing site-administrator access. Group Pin Authority lets you decide whether the creator, admins, moderators, or any member can pin.

03

Event and announcement teams

Pin an event reminder and set it to expire after the event date. Auto-expiry runs on a cron and unpins it for you, so the feed never carries stale notices.

04

Membership site owners

Feature a member spotlight or a new resource at the top of the feed. Customize the Pin and Unpin button labels and the badge so the controls match your site's language and brand.

05

Headless and app builders

Pin, unpin, and read sticky activities over the REST API, and pull per-user pin stats for leaderboards. The pin routes live under the BuddyPress REST namespace and switch to the BuddyBoss namespace on BuddyBoss sites.

06

Agencies and developers

Manage pins in bulk from WP-CLI, drop a list of pinned posts onto any page with the shortcode, and extend the pin lifecycle through 20 actions and 12 filters. No glue code to maintain.

See it in action

How BuddyPress Sticky Post looks on your site.

Switch between the four surfaces in the preview: the pinned activity feed, the per-user quota block, the admin settings tabs, and the dashboard with the activity log.

yourdomain.com/activity
Community Teampinned to the top

Welcome to the community. Read the guidelines before your first post.

Maya Singh8 minutes ago

Just shipped my first plugin. Thanks everyone for the help.

Dev Park22 minutes ago

Office hours this Friday at 3pm UTC. Bring your questions.

The activity stream with a pinned post held above the regular feed. A Pinned badge marks it, and the Pin or Unpin control sits in the activity tools menu. The same behavior works on the sitewide stream, inside a group, and on a member's own profile.

yourdomain.com/activity
Jordan R.your active pin

Weekly standup notes are live in the docs.

You already have 1 pinned post Unpin it first to feature a different one. Members can keep 1 pin at a time.
Group admin · Designers Hub Group Pin Authority lets you pin without the member limit
Bypass on

A member hitting the per-user pin limit. The max_user_sticky_posts setting defaults to 1, and 0 means unlimited. When the cap is reached, the pin is blocked with a friendly 429 message instead of a silent failure. Group admins and moderators with Group Pin Authority bypass the personal quota inside their group.

yourdomain.com/wp-admin/admin.php?page=wbcom-settings
Settings
Enable on activity stream
Show on member profiles
Email notifications
Allowed roles

The admin settings screen with seven tabs: Overview, Permissions, Appearance, Lifecycle, Advanced, Logs, and License. Permissions controls who can pin by role and Group Pin Authority, while Lifecycle sets the auto-expiry window and toggles the activity log that records every pin, unpin, and auto-expiry event with the actor and timestamp.

Step 1 of 3

Group Pin Authority

Let group admins and moderators pin against the admin quota

Inside a group, a separate setting decides who can pin: the creator only, creator plus admins, creator plus admins plus moderators (the default), or any member. Group admins and moderators pin on behalf of the group, so they draw from the admin pin allowance instead of their own per-user quota. Regular members stay capped by the per-user limit, so the top of the group feed stays curated.

  • Four authority levels: creator only, creator plus admins, creator plus admins plus moderators, or any member
  • Group admins and moderators bypass the personal per-user quota inside their own group
  • Regular members stay limited by the per-user pin cap
yourdomain.com/activity
Jordan R.your active pin

Weekly standup notes are live in the docs.

You already have 1 pinned post Unpin it first to feature a different one. Members can keep 1 pin at a time.
Group admin · Designers Hub Group Pin Authority lets you pin without the member limit
Bypass on

Auto-expiry and activity log

Pins expire on a schedule, and every pin event is logged

Give a pin a lifespan in days from 1 to 365 and it unpins itself when the window runs out. A WordPress cron job scans for expired pins and removes them, so removal can lag up to the cron interval from the exact cutoff. Every pin, unpin, and auto-expiry event is written to a dedicated database table with the actor's user ID, timestamp, component, and group, viewable on the Logs tab and exportable as CSV.

  • Set a pin lifespan from 1 to 365 days, or never
  • An hourly cron sweeps for expired pins and unpins them for you
  • Every pin, unpin, and expiry event lands in a dedicated log table with actor and timestamp
yourdomain.com/wp-admin/admin.php?page=wbcom-settings
Settings
Enable on activity stream
Show on member profiles
Email notifications
Allowed roles

What you get

Pin to three feeds, then keep the top of the stream under control.

Every license is the complete plugin. Pin to the sitewide stream, groups, and profiles, cap how many pins each member gets, let pins expire on their own, and manage it all from a seven-tab admin screen, the REST API, WP-CLI, or a shortcode. The only difference between tiers is how many sites you can run it on.

01

Pin to the sitewide stream, groups, and profiles

Pin any activity from the activity tools menu and it stays above the regular feed. Pins are scoped separately: a sitewide pin shows in the main stream, a group pin shows in that group, and a profile pin shows on the member's own activity. Each feed manages its own pins, so a sitewide pin never clutters a group.

02

Per-user pin quotas

Set how many posts each member can pin at once. The default is 1, and 0 means unlimited. When a member hits the cap, the pin is blocked with a friendly 429 message rather than failing silently. A separate admin limit governs how many pins site administrators can hold.

03

Group Pin Authority

Inside groups, a separate setting decides who can pin: the group creator only, creator plus admins, creator plus admins plus moderators (the default), or any member. Group admins and moderators pin on behalf of the group, so they bypass the personal per-user quota inside their own group.

04

Automatic pin expiration

Give a pin a lifespan in days and it unpins itself when the window runs out. A WordPress cron job scans for expired pins and removes them, and the expiry is recorded in the activity log. Event reminders and time-sensitive notices clean themselves up without manual work.

05

Activity log with a dedicated table

Every pin, unpin, and auto-expiry event is written to a dedicated database table with the actor's user ID, timestamp, component, and group. The Logs tab shows the feed so you can audit who pinned what and when, which helps with moderation and accountability.

06

REST API, WP-CLI, and a shortcode

Pin, unpin, and read sticky activities over REST, with pin routes under the BuddyPress namespace (buddypress/v1 by default, switching to the BuddyBoss namespace on BuddyBoss sites) plus a bpsp/v1/users/{id}/stats route for pin counts. Manage pins in bulk with wp bpsp on the command line, and drop a list of pinned posts onto any page with [bp_sticky_posts].

Made for

Six audiences. One product.

BuddyPress community managersGroup organizersEvent and announcement teamsMembership site ownersHeadless and app buildersAgencies and developers

Pricing

Same complete plugin on every tier. Pick how many sites you run.

Every tier ships the full feature set: pinning to all three feeds, per-user quotas, Group Pin Authority, auto-expiry, the activity log, REST, WP-CLI, and the shortcode. Tiers differ only by the number of sites your license covers. Yearly plans include a year of updates and support; lifetime plans pay once and keep updates forever.

Personal

$49 / year

or $149 lifetime

One community site.

  • 1 site
  • Pin to stream, groups, and profiles
  • Per-user quotas + Group Pin Authority
  • Auto-expiry, activity log, REST + WP-CLI
  • 1 year of updates + support
Get Personal at $49 or lifetime at $149
Most popular

Professional

$99 / year

or $299 lifetime

Five sites. Freelancers and small agencies.

  • 5 sites
  • Pin to stream, groups, and profiles
  • Per-user quotas + Group Pin Authority
  • Auto-expiry, activity log, REST + WP-CLI
  • 1 year of updates + support
Get Professional at $99 or lifetime at $299

Agency

$129 / year

or $349 lifetime

Unlimited sites for agencies running many community builds.

  • Unlimited sites
  • Pin to stream, groups, and profiles
  • Per-user quotas + Group Pin Authority
  • Auto-expiry, activity log, REST + WP-CLI
  • 1 year of updates + support
Get Agency at $129 or lifetime at $349

Before you install

Questions community operators ask.

Answered by the team that maintains the plugin. Anything else, reach out through the contact page.

  1. 01

    Does this require BuddyPress?

    Yes. The plugin needs either BuddyPress or BuddyBoss Platform active. It checks for a supported platform on activation and works with BuddyPress 5.0 and later, and BuddyBoss Platform 2.0 and later.

  2. 02

    Does it work with BuddyBoss?

    Yes. BuddyBoss Platform 2.0 or higher is supported alongside standard BuddyPress, with no extra configuration. On BuddyBoss the REST pin routes register under the BuddyBoss namespace automatically instead of buddypress/v1.

  3. 03

    Where can a post be pinned?

    Three places, each managed separately. A sitewide pin shows at the top of the main activity stream, a group pin shows inside that group's feed, and a profile pin shows on the member's own activity. A post pinned in one scope does not automatically appear in another.

  4. 04

    How many posts can a member pin?

    By default one. The max_user_sticky_posts setting controls the per-user limit, and setting it to 0 makes it unlimited. When a member reaches the cap, the pin is blocked with a friendly 429 message instead of failing silently.

  5. 05

    Can group moderators pin without being site admins?

    Yes. Group Pin Authority lets you choose who can pin inside a group: the creator only, creator plus admins, creator plus admins plus moderators (the default), or any member. Group admins and moderators pin on behalf of the group, so they bypass the personal per-user quota inside their own group.

  6. 06

    Can pins expire on their own?

    Yes. Set a lifespan in days and the pin unpins itself when the window runs out. A WordPress cron job scans for expired pins and removes them, so removal can lag up to the cron interval from the exact cutoff. The expiry is recorded in the activity log.

  7. 07

    Is there a record of who pinned what?

    Yes. Every pin, unpin, and auto-expiry event is written to a dedicated database table with the actor's user ID, timestamp, component, and group. The Logs tab shows the feed, which is useful for moderation and accountability. Logging is toggled on the Lifecycle tab.

  8. 08

    Is there a REST API?

    Yes. You can pin, unpin, and read sticky activities over REST. The pin routes register under the BuddyPress REST namespace, which is buddypress/v1 by default and switches to the BuddyBoss namespace on BuddyBoss sites. A separate bpsp/v1/users/{id}/stats route returns per-user pin counts for leaderboards.

  9. 09

    Can I manage pins without the admin screen?

    Yes. The wp bpsp WP-CLI command pins, unpins, and lists sticky posts from the command line, which is handy for bulk operations and server-side automation. You can also drop a list of pinned posts onto any page with the [bp_sticky_posts] shortcode.

  10. 10

    Can I extend it with code?

    Yes. The plugin fires 20 action hooks and 12 filters across the full pin and unpin lifecycle, so you can cancel a pin before it is written, change the pinned ID list, override the badge HTML, or react to every pin event. There is no admin-ajax handler; the legacy AJAX path was removed in 2.3.8 in favor of REST and WP-CLI.

Stop letting your best posts scroll away.

Activate the plugin on a BuddyPress or BuddyBoss site and a Pin control appears in the activity tools menu. Pick who can pin, set a per-user quota, and choose an expiry window. The next post you pin holds the top of the feed until you unpin it or it expires.