{"id":163844,"date":"2017-04-10T13:00:41","date_gmt":"2017-04-10T13:00:41","guid":{"rendered":"https:\/\/premium.wpmudev.org\/blog\/?p=163844"},"modified":"2017-04-20T05:03:44","modified_gmt":"2017-04-20T05:03:44","slug":"build-intranet-buddypress","status":"publish","type":"post","link":"https:\/\/wpmudev.com\/blog\/build-intranet-buddypress\/","title":{"rendered":"How to Build a Staff Intranet with BuddyPress and WordPress"},"content":{"rendered":"<p>BuddyPress continues to be one of the most popular free WordPress plugins. Its customizability and flexibility make it a great tool for creating your own social media platform.<\/p>\n<p>But it has another use as well, one that I&#8217;ve used with a number of clients, and that&#8217;s as the basis for an intranet, or an internal website that staff members can use to communicate with each other and keep up to date with company news and events at a company or organization.<\/p>\n<div class=\"wpdui-pic-full \" style=\"background-image: url(https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2017\/04\/buddypress.png); background-size: cover; background-position: center center; min-height: 270px;\">\n<figure class=\"wp-caption alignnone\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"attachment-1500x1500 size-1500x1500\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2017\/04\/buddypress.png\" alt=\"Post image\" aria-hidden=\"true\" width=\"1500\" height=\"503\" \/><figcaption class=\"wp-caption-text\">BuddyPress is a great tool for building a staff intranet<\/figcaption><\/figure>\n<\/div>\n<p>The fact that BuddyPress has so many features means that you can customize your intranet to work exactly the way you need it to, and you can also run the same theme as your main public website to keep things looking consistent. Or you can use a theme designed with BuddyPress in mind instead.<\/p>\n<p>In this post, I&#8217;m going to show you how to configure BuddyPress for a staff intranet. I&#8217;ll walk you through the steps involved and show you how I&#8217;ve gone about it for my clients, as well as highlighting some of the benefits and uses of BuddyPress for intranets.<\/p>\n<p>So let&#8217;s get started!<\/p>\n<p><em><strong>Note: Want to learn how to manage and add new features to your staff intranet? Check out part two:\u00a0<a href=\"https:\/\/wpmudev.com\/blog\/manage-add-features-buddypress-intranet\/\" target=\"_blank\">How to Manage and Add Features to Your BuddyPress-Powered Staff Intranet<\/a>.<\/strong><\/em><\/p>\n<h3>Planning Your Intranet<\/h3>\n<p>Before you dive in and install BuddyPress, you need to step back and do some planning. Not all intranets need to be the same, so you need to take the time to consider what features you need and how the site will be structured.<\/p>\n<p>Involve multiple stakeholders in this, as there may be many teams and\/or departments using the intranet, and they may have different needs.<\/p>\n<h4>Planning Your Approach<\/h4>\n<p>You also need to consider whether your whole organization should be on the same intranet, or if\u00a0it&#8217;s best to set up a Multisite network with each team having their own site on it. That way you can customize each team&#8217;s site so it works in just the way they need it to.<\/p>\n<p>However, if people from different teams are going to need to interact with each other, it may be best to set up just one site for your whole network. If teams don&#8217;t need to interact that much but do need to see content from each other&#8217;s sites or news from a central source, then you could use your main site on your network for this, maybe installing BuddyPress there for intra-departmental communications\u00a0or using our own <a href=\"https:\/\/wpmudev.com\/project\/reader\/\" target=\"_blank\">Reader<\/a> plugin to display feeds from the sites on your network.<\/p>\n<p><em>Note: For tips on using our plugins to do this, see our guide to <a href=\"https:\/\/wpmudev.com\/blog\/wordpress-multisite-masterclass-creating-community\/\" target=\"_blank\">creating a community with WordPress Multisite<\/a>.<\/em><\/p>\n<p>For the purposes of this post, I&#8217;m going to assume that you&#8217;re creating one standalone WordPress site internally, with BuddyPress installed and people from multiple teams able to access it. I&#8217;ll show you how to activate\u00a0the BuddyPress Groups feature to manage communications within teams.<\/p>\n<h4>Deciding Which Features You Need<\/h4>\n<p>The next thing you&#8217;ll need to identify is which BuddyPress features your intranet needs. These are known as &#8220;components&#8221; and you can switch them on or off as you need them. They are:<\/p>\n<ul>\n<li><strong>Extended Profiles<\/strong> &#8211;\u00a0editable profile fields that let\u00a0your users describe themselves.<\/li>\n<li><strong>Account Settings<\/strong> &#8211; allow users to modify their account and notification settings from within their profiles.<\/li>\n<li><strong>Friend Connections<\/strong> &#8211;\u00a0Let users make individual connections.<\/li>\n<li><strong>Private Messaging<\/strong> &#8211; users can message each other privately, both as individuals and in groups.<\/li>\n<li><strong>Activity Streams<\/strong> &#8211; global, personal, and group activity streams.<\/li>\n<li><strong>Notifications<\/strong> &#8211;\u00a0with a toolbar bubble and\/or via email.<\/li>\n<li><strong>User Groups<\/strong>&#8211;\u00a0groups of individuals with their own activity streams. Useful for different teams or project groups.<\/li>\n<li><strong>Site Tracking<\/strong> &#8211; record activity for new posts and comments.<\/li>\n<\/ul>\n<p>The two other components \u2013 BuddyPress Core and Community members \u2013 can&#8217;t be switched off, as BuddyPress won&#8217;t work without them.<\/p>\n<p>All of these have a place within a staff intranet, but which you activate will depend on your specific needs. For example, Groups is useful for allowing individual teams to communicate internally, and Private Messaging will make the intranet even more useful for communication. Some organizations choose not to activate messaging as they prefer staff to use other systems for this such as internal email, picking up the phone or even talking face to face!<\/p>\n<h4>Identifying Hosting Requirements<\/h4>\n<p>Once you&#8217;ve identified what you need from\u00a0your intranet and who&#8217;s going to use it, you need to work out how it will be hosted. This depends on security requirements and where people will be accessing it from.<\/p>\n<p>It&#8217;s likely that staff will need to access the intranet from multiple locations: even if your office is in one place, they&#8217;ll need access when they&#8217;re out on business or working from home. In which case you need to decide whether you&#8217;ll host your intranet on your web server (with extra security measures) or if staff will need to access your internal systems.<\/p>\n<p>This\u00a0is something you&#8217;ll need to discuss\u00a0with your IT team.<\/p>\n<h3>Installing and Configuring BuddyPress<\/h3>\n<p>Now you know what you need, let&#8217;s walk through the steps involved. I&#8217;ve created a dummy site running a BuddyPress-compatible free theme from the WordPress Theme Directory. In theory, all themes are compatible with BuddyPress \u2013 you don&#8217;t have to tweak them to make them work. But some will be better suited than others.<\/p>\n<p>I&#8217;d advise choosing a theme with a simple, uncluttered design that doesn&#8217;t distract people from the content. Or you may prefer to use the same theme as on your public website, which is what one of my clients does.<\/p>\n<h4>Installing the BuddyPress Plugin<\/h4>\n<p>First, install BuddyPress via your Plugins screen in the admin. You&#8217;ll be presented with the BuddyPress intro screen:<\/p>\n<div  class=\"wpdui-pic-regular  \"> <img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2017\/04\/intro-screen.jpg\" alt=\"BUddyPress intro screen\" width=\"600\" height=\"339\" \/> <\/div>\n<h4>Configuring Settings<\/h4>\n<p>First, let&#8217;s configure components. Click on the <strong>Set Up Components<\/strong> link to be taken to the <strong>Components<\/strong> tab in the <strong>BuddyPress Settings<\/strong> screen:<\/p>\n<div  class=\"wpdui-pic-regular  \"> <img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2017\/04\/components.png\" alt=\"BuddyPress components screen\" width=\"600\" height=\"447\" \/> <\/div>\n<p>I&#8217;m going to select all of the optional components by ticking the checkboxes next to them. Once you&#8217;ve selected your components, click the <strong>Save Settings<\/strong> button.<\/p>\n<p>Now we can move on to pages. BuddyPress creates some specific\u00a0pages for you to use in your intranet, containing things like activity screens, member details and groups. Click the <strong>Pages<\/strong> tab at the top of the screen:<\/p>\n<div  class=\"wpdui-pic-regular  \"> <img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2017\/04\/buddypress-pages-settings.png\" alt=\"BUddyPress pages settings screen\" width=\"600\" height=\"396\" \/> <\/div>\n<p>Depending on which components you selected, pages will be displayed here. I&#8217;ve selected all components so all available pages are shown. If you didn&#8217;t select the User Groups component, for example, you won&#8217;t have the option of creating a page for that.<\/p>\n<p>It makes sense to stick with the BuddyPress defaults, so click the <strong>Save Settings<\/strong> button and then click the <strong>Options<\/strong> tab:<\/p>\n<div  class=\"wpdui-pic-regular  \"> <img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2017\/04\/buddy-press-options-settings.png\" alt=\"BuddyPress options screen\" width=\"600\" height=\"430\" \/> <\/div>\n<p>Here you can make more tweaks to your BuddyPress configuration. By default, all of the options are turned on. For an intranet it makes sense to turn some of these off:<\/p>\n<ul>\n<li><strong>Account Deletion<\/strong> &#8211; you don&#8217;t want staff members removing themselves from the system.<\/li>\n<li><strong>Group Creation<\/strong> &#8211; you may want to turn this off if you&#8217;re setting up all the groups as the site administrator. Alternatively, keep it on if you want people to be able to set up their own project groups.<\/li>\n<\/ul>\n<p>Work through this screen identifying which options you want to switch off, uncheck them and click the <strong>Save Settings<\/strong> button. Remember, you can always come back and make changes later &#8211; you can even activate components you didn&#8217;t activate when you first installed BuddyPress.<\/p>\n<h4>Configuring Pages and Navigation<\/h4>\n<p>Now let&#8217;s configure BuddyPress and other pages in the site. BuddyPress adds the following pages to your site:<\/p>\n<ul>\n<li>Members<\/li>\n<li>Activity<\/li>\n<li>Groups<\/li>\n<li>Registration<\/li>\n<li>Activate<\/li>\n<\/ul>\n<p>My site already has a static front page and a blog page, which gives me a set of pages as shown in the screenshot:<\/p>\n<div  class=\"wpdui-pic-regular  \"> <img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2017\/04\/buddypress-pages.png\" alt=\"WordPress pages admin screen\" width=\"600\" height=\"453\" \/> <\/div>\n<p>When\u00a0you were planning your intranet you&#8217;ll have thought about the most important content types and what you want to show where.\u00a0I&#8217;m going to remove my static front page (maybe keeping it as an &#8216;about&#8217; page, and use the Activity page added by BuddyPress as my home page.<\/p>\n<p>To do this, I&#8217;ll need to set that up as my home page in my site settings.<\/p>\n<p>Go to <strong>Settings &gt; Reading<\/strong>, and next to Front page displays, select <strong>A static page<\/strong>. The select the Activity page. Finally, click the <strong>Save Changes<\/strong> button.<\/p>\n<div  class=\"wpdui-pic-regular  \"> <img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2017\/04\/reading-settings.png\" alt=\"WordPress selecting a static page as the home page\" width=\"600\" height=\"225\" \/> <\/div>\n<p>To set up your site&#8217;s\u00a0navigation, go to <strong>Appearance &gt; Menus<\/strong>. If your site doesn&#8217;t already have a menu set up, create one. Then add the pages (BuddyPress and other pages) you want to include in your main navigation menu, and make sure you&#8217;ve got <strong>Primary Navigation<\/strong> checked so it shows up in the right place.<\/p>\n<p>I&#8217;ve chosen to structure my navigation with sub level items so that the menu isn&#8217;t too unwieldy:<\/p>\n<div  class=\"wpdui-pic-regular  \"> <img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2017\/04\/menus-screen.png\" alt=\"Creating a menu in WordPress\" width=\"600\" height=\"402\" \/> <\/div>\n<p>Now save your menu by clicking the <strong>Save Menu<\/strong> button.<\/p>\n<h4>Configuring Widgets<\/h4>\n<p>I want to add some widgets to the sidebar and footer to allow easy access to recent posts in the internal blog as well as BuddyPress activity. You might need some slightly different ones \u2013 let&#8217;s get those set up.<\/p>\n<p>Go to <strong>Appearance &gt; Widgets<\/strong> or open the Customizer and access the widgets from there.<\/p>\n<div  class=\"wpdui-pic-regular  \"> <img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2017\/04\/widgets.png\" alt=\"WordPress widgets screen\" width=\"600\" height=\"446\" \/> <\/div>\n<p>My theme has widget areas in the sidebar and footer: what you have will depend on your theme.<\/p>\n<p>BuddyPress provides you with seven\u00a0widgets:<\/p>\n<ul>\n<li><strong>Friends<\/strong> &#8211; lets logged\u00a0in users see their friends&#8217; activity<\/li>\n<li><strong>Log in<\/strong> &#8211; lets users log in<\/li>\n<li><strong>Recently active members<\/strong> &#8211; shows users what&#8217;s new<\/li>\n<li><strong>Who&#8217;s Online<\/strong> &#8211; displays the profile photos of everyone currently logged in.<\/li>\n<li><strong>Groups<\/strong> &#8211; shows group activity<\/li>\n<li><strong>Members<\/strong> &#8211; a list of active members<\/li>\n<li><strong>Sitewide Notices<\/strong> &#8211; displays\u00a0notices posted by the administrator.<\/li>\n<\/ul>\n<p>For an intranet, some of those are particularly useful, including Groups and Sitewide Notices. I&#8217;m also going to add the Recent Posts widget, which come built in with WordPress.<\/p>\n<p>Take some time to identify which widgets you need and add them to the relevant widget areas in your theme.<\/p>\n<p>I&#8217;m going with the following:<\/p>\n<ul>\n<li><strong>Sidebar:<\/strong> Site-wide Notices, Search, Groups, Recent Posts.<\/li>\n<li><strong>Below Content:<\/strong> Who&#8217;s Online, Members.<\/li>\n<\/ul>\n<p>I&#8217;m using the Twenty Sixteen theme as it has a sidebar widget area plus two widget areas under the content, which do the same job as\u00a0a footer widget area.<\/p>\n<p>If you&#8217;re setting up a staff intranet, I recommend <a href=\"https:\/\/wpmudev.com\/blog\/wordpress-development-intermediate-theme-development-in-detail\/\" target=\"_blank\">adding widget areas to your theme<\/a> if you need more, to give yourself as much flexibility as possible.<\/p>\n<p>Here&#8217;s how my intranet is looking so far:<\/p>\n<div  class=\"wpdui-pic-regular  \"> <img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2017\/04\/empty-activity-page.png\" alt=\"BuddyPress activity page\" width=\"600\" height=\"459\" \/> <\/div>\n<p>It&#8217;s a bit\u00a0bare right now, but that will change as people start using our intranet and adding content to it. In a future post, I&#8217;ll show you how to add users, set up groups, and manage your intranet.<\/p>\n<h3>Forcing Users to Log In<\/h3>\n<p>You may have noticed that I didn&#8217;t include a login widget on my site. This was deliberate because I don&#8217;t want anyone to have access to the site without logging in first. So I&#8217;m going to install a plugin that will force users to log in via the WordPress login screen before they can see anything on the intranet.<\/p>\n<p>The plugin is called <a href=\"http:\/\/wordpress force user to change password on first login\" target=\"_blank\">Force Login<\/a> and all you need to do is install and activate it on your site. Then when anyone visits the site, they&#8217;ll see the WordPress login screen before they can access it:<\/p>\n<div  class=\"wpdui-pic-regular  \"> <img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2017\/04\/WordPress-login-screen.png\" alt=\"WordPress login screen\" width=\"600\" height=\"474\" \/> <\/div>\n<p>If you want to brand your login screen to make it look more professional, you can use our <a href=\"https:\/\/wpmudev.com\/project\/ultimate-branding\/\" target=\"_blank\">Ultimate Branding<\/a> plugin.<\/p>\n<p>You now have an intranet that&#8217;s ready for you to start adding users, groups, and content.<\/p>\n<h3>BuddyPress Makes Setting up a Staff Intranet Easy<\/h3>\n<p>BuddyPress is a great tool for creating an intranet for your company or organization, and something I&#8217;ve used with varied clients, including business, voluntary organizations, and schools.<\/p>\n<p>It lets you create a secure online environment where your staff can see the latest internal news and interact with each other. \u00a0And once you&#8217;ve got it up and running, the next step is to manage it and get the most from it, which I&#8217;ll cover in a future post. Watch this space!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>BuddyPress continues to be one of the most popular free WordPress plugins. Its customizability and flexibility make it a great tool for creating your own social media platform. But it has another use as well, one that I&#8217;ve used with a number of clients, and that&#8217;s as the basis for an intranet, or an internal [&hellip;]<\/p>\n","protected":false},"author":347011,"featured_media":164001,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"blog_reading_time":"","wds_primary_category":0,"wds_primary_tutorials_categories":0,"footnotes":""},"categories":[557],"tags":[9892,9930],"tutorials_categories":[],"class_list":["post-163844","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","tag-buddypress-2","tag-intranet"],"_links":{"self":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/163844","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/users\/347011"}],"replies":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/comments?post=163844"}],"version-history":[{"count":8,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/163844\/revisions"}],"predecessor-version":[{"id":164260,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/163844\/revisions\/164260"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/media\/164001"}],"wp:attachment":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/media?parent=163844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/categories?post=163844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/tags?post=163844"},{"taxonomy":"tutorials_categories","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/tutorials_categories?post=163844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}