New: Allows hidden and Private groups to have public and site members only posts without compromising the group privacy.
A feature I’ve always thought was missing from BuddyPress was integration with WordPresses biggest asset – blog posts. This plugin is my attempt to do just that. First of all it implements BuddyPress Post Statuses, so a post can be shared just to friends, site members followers or those the user follows. In addition groups can have their own posts and these can be made public, site members only or only available to group members regardless of the group status.
Once you have posts linked to groups an immediate thought is to use a group based post as the groups home-page – this plugin enables that with group admin able to easily choose from the groups list of posts which one is to be used as the homepage.
Groups and users get a dedicated page for their posts, this page is intended not only to display these blogs to other users but also to help the user manage their posts from the front-end, so posts can be made sticky, deleted and if BP Site Post is installed, created and edited, all from the front end.
Simply install the plugin, edit your post and select Members or Friends Only, or choose to publish into a group you are a member of. In addition you can turn on notifications for these new post types and control exactly who can post or send notifications.
Note that users will need to have WordPress edit_posts as a capability to create new pending posts and publish_posts capability in order to select the publish statuses.
If you have groups that would like to assign posts to the group, and share either publicly, only to site members or only to group membes then this plugin should interest you.
Also you may have a need to allow site members the opportunity to create posts only to share amongst friends, or only to logged in site members, then this plugin adds that functionality.
Groups can also choose to use a group post as a homepage, using this option group activity is moved to an activity tab and the home tab is used for the selected post. This means group managers have full flexibility as to the content they choose to display in the homepage; shortcodes can be used to display summaries of group forums and activity for example.
It’s integrated with BuddyPress Activity and Notifications and supports BP Follow.
If you want to allow front end posting I’ve also created BP Site Post which works with BP Post Status and allows users to create and edit their posts from the front-end.
The activity posts try to be appropriate to the security level assigned to the post – private group posts only post their activity into the group the post is assigned to.
Site and group managers can choose to enable the ability to trigger a notification to the target group with the posts publication.
Groups with group posts enabled have an optional “Group Posts” tab showing all posts assigned to the group. If a private or hidden group chooses to publish public posts then this directory will be visible to non group members, but it will only display posts that have been made public. Similarly if a private group makes their homepage public then the landing page will be displayed for visiting non-members.
There’s extensive manageability:
Group managers can choose what membership level to allow group post creation, and also the membership level required to be able to trigger post notifications. These options are available in the groups management pages in the settings tab. They can also choose to display a “Group Posts” tab in the group.
In addition, the site admin has a settings page at Dashboard>>Settings>>BP Post Status. Here the five different status types can be disabled site-wide, and the site-wide controls for the minimum user role required to create posts and trigger notifications is set.
There is also an option to have post revisions create activity updates, as opposed to the activity only being updated when the post is first created. When it is enabled you can set the minimum time allowed between posting updates.
A new My Posts menu option has been added to users profiles, this displays their posts and enabled posts to be made sticky ( in My Posts ) or deleted. If BP Site Post is loaded then an edit link can also be added to this view. For guests viewing My Posts only published posts will be displayed but for the user all posts (including pending) will be displayed.
Editors ( members with the ‘edit_others_posts’ capability ) get a Moderation page in their profile ( if there are pending posts to approve ) for easy access to the approvals queue. This page shows the full content of the post to be approved and have links to delete, publish or edit the post.
Members with pending posts and with the ‘edit_posts’ capability get a Pending Posts page in their profile ( if they have pending posts ) so that pending posts can be reviewed and edited.
Note regarding group_only_pending posts
When a group_post_pending post is selected, a notification email is sent to the admin of the site so they can authorize the post. However, I felt that this was a less than optimal solution since ideally the group creator should have a say in if a post gets published to their group. One of the issues is that it’s not possible to give group creators the ability to manage only posts in their group – they either edit_others_posts for all posts on the site or they simply do not have this capability.
I found a solution to this using Automattics Co-Authors Plus plugin, since this allows multiple authors to be assigned to posts. I’ve therefore added a check to see if Co-Authors Plus is active and if so the group creator will be automatically added as an author of all posts set for their group. This being the case they will be send a notification email and they will be able to edit the post content and if they have publish_posts capability they will be able to publish the post to their group. However, if they only have edit_posts, they will need to contact the site admin to have the post published. However, at the time of writng this causes an error when viewing the profile my-posts page (10/03/2019), this has been reported and is being worked on.
The template pages can be overloaded by copying them to themes/your-child-theme/bpps/ and editing them as suits.
There is a shortcode – [bppss_group_posts group_id=”34″ ] which allows the group posts list to be displayed on any page.
The only downside of this plugin is with regards to Gutenberg – the new text editor in WordPress, sadly Gutenberg does not support custom post statuses so if you want to use this you will have to install the Classic Editor plugin and stick with the classic for now, hopefully this situation will be rectified soon.
- This plugin was created by merging some features from three other plugins – Peter Shaw’s LH Logged in Post Status, BuddyDev’s Blog Categories for Groups and Imath’s WP Statuses. This made the creation of this plugin a lot easier than it would have been if built from scratch. Props to these great developers!