{"id":11553,"date":"2017-07-21T17:40:07","date_gmt":"2017-07-21T15:40:07","guid":{"rendered":"https:\/\/www.saasweb.agency\/blog\/wordpress-how-to-create-a-private-homepage-for-family-and-friends\/"},"modified":"2026-10-27T08:29:01","modified_gmt":"2026-10-27T07:29:01","slug":"wordpress-how-to-create-a-private-homepage-for-family-and-friends","status":"publish","type":"post","link":"https:\/\/www.saasweb.agency\/en\/blog\/wordpress-how-to-create-a-private-homepage-for-family-and-friends\/","title":{"rendered":"WordPress: How to Create a Private Homepage for Family and Friends"},"content":{"rendered":"<div id=\"pl-5376\" class=\"panel-layout\">\n<div id=\"pg-5376-0\" class=\"panel-grid panel-no-style\" data-style=\"{\"background_display\":\"tile\",\"cell_alignment\":\"flex-start\"}\">\n<div id=\"pgc-5376-0-0\" class=\"panel-grid-cell\" data-weight=\"1\">\n<div id=\"panel-5376-0-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child\" data-index=\"0\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<div class=\"siteorigin-widget-tinymce textwidget\">\n<p>In a private setting, it is not uncommon to want to avoid sharing photos, videos, and texts with everyone.<\/p>\n<p>However, you still want to be able to share content with friends and family, and it should be simple (plus, they shouldn&#8217;t be given permissions to modify the homepage)&#8230; Many people therefore prefer to use Facebook because they believe the content is private there\u2014well, let&#8217;s leave comments on that aside&#8230; <\/p>\n<p>Let&#8217;s turn to another option: we create a WordPress homepage that only registered users can access. To ensure that not everyone has to remember a login and password, we offer the option to log in via Facebook Login in addition to the standard registration. <\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"panel-5376-0-0-1\" class=\"so-panel widget widget_sow-editor panel-last-child\" data-index=\"1\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<h3 class=\"widget-title\">Procedure<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n How do we achieve our goal?<\/p>\n<ul>\n<li>Restricting Access\n<ul>\n<li>Set up the Members plugin to adjust WordPress role definitions and redirect access to the homepage via the login page<\/li>\n<li>Install the User Role Editor plugin to create a custom capability (permission)<\/li>\n<li>Adjust the theme&#8217;s functions.php file to hide homepage content from subscribers<\/li>\n<li>Create a page with information for logged-in users who do not have the appropriate permissions<\/li>\n<\/ul>\n<\/li>\n<li>Install\/configure a Facebook plugin to allow Facebook users to log in without a username\/password\n<ul>\n<li>Create a Facebook app<\/li>\n<li>Set up a social login plugin (Nextend Social Login)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pg-5376-1\" class=\"panel-grid panel-no-style\" data-style=\"{\"background_display\":\"tile\",\"cell_alignment\":\"flex-start\"}\">\n<div id=\"pgc-5376-1-0\" class=\"panel-grid-cell\" data-weight=\"1\">\n<div id=\"panel-5376-1-0-0\" class=\"so-panel widget widget_sow-headline panel-first-child panel-last-child\" data-index=\"2\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-headline so-widget-sow-headline-default-6a77181822be\">\n<div class=\"sow-headline-container \">\n<h2 class=\"sow-headline\">Restricting Access to the Homepage<\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pg-5376-2\" class=\"panel-grid panel-no-style\" data-style=\"{\"background_display\":\"tile\",\"cell_alignment\":\"flex-start\"}\">\n<div id=\"pgc-5376-2-0\" class=\"panel-grid-cell\" data-weight=\"0.34979919678715\">\n<div id=\"panel-5376-2-0-0\" class=\"so-panel widget widget_sow-image panel-first-child panel-last-child\" data-index=\"3\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-image so-widget-sow-image-default-813df796d9b1\">\n<div class=\"sow-image-container\">\n<a href=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/plugin-members-settings-1.png\">\t<img decoding=\"async\" alt=\"Members Plugin Settings in WordPress\" src=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/plugin-members-settings-1.png\" width=\"978\" height=\"1139\" srcset=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/plugin-members-settings-1.png 978w, https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/plugin-members-settings-1-258x300.png 258w, https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/plugin-members-settings-1-768x894.png 768w, https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/plugin-members-settings-1-879x1024.png 879w\" sizes=\"(max-width: 978px) 100vw, 978px\" title=\"Settings for the Members Plugin\" class=\"so-widget-image\"><br \/><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pgc-5376-2-1\" class=\"panel-grid-cell\" data-weight=\"0.65020080321285\">\n<div id=\"panel-5376-2-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"4\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<h3 class=\"widget-title\">Setting Up the Members Plugin<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n The <a href=\"https:\/\/de.wordpress.org\/plugins\/members\/\" target=\"_blank\" rel=\"noopener\">Members Plugin<\/a> serves two functions for our use case:<\/p>\n<ol>\n<li>Preventing general access to content: visitors must be logged in<\/li>\n<li>Creating a new &#8220;Family &#038; Friends&#8221; role: as an admin, we can manually move subscribers (who have no permissions) into the new role<\/li>\n<\/ol>\n<p>We install the Members plugin and take care of its settings:<\/p>\n<ul>\n<li>Enable Private Site: check this\u2014we want only logged-in users to be able to see the content, so non-logged-in users should be redirected to the login page, regardless of which page they try to access<\/li>\n<li>REST API: check this\u2014otherwise, posts and pages can still be retrieved without logging in via the <em>\/wp-json\/<\/em> interface<\/li>\n<li>Disable Feed: check this\u2014other people or services should not receive information about the content<\/li>\n<\/ul>\n<p>The other default parameters can remain as they are.\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pg-5376-3\" class=\"panel-grid panel-no-style\" data-style=\"{&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}\">\n<div id=\"pgc-5376-3-0\" class=\"panel-grid-cell\" data-weight=\"0.31694915254237\">\n<div id=\"panel-5376-3-0-0\" class=\"so-panel widget widget_sow-image panel-first-child panel-last-child\" data-index=\"5\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-image so-widget-sow-image-default-813df796d9b1\">\n<div class=\"sow-image-container\">\n<a href=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/user-role-editor-add-capability-1.png\">\t<img decoding=\"async\" alt=\"User Role Editor: Creating a New Capability\" src=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/user-role-editor-add-capability-1.png\" width=\"861\" height=\"791\" srcset=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/user-role-editor-add-capability-1.png 861w, https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/user-role-editor-add-capability-1-300x276.png 300w, https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/user-role-editor-add-capability-1-768x706.png 768w\" sizes=\"(max-width: 861px) 100vw, 861px\" title=\"A new capability is created with the User Role Editor\" class=\"so-widget-image\"><br \/><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pgc-5376-3-1\" class=\"panel-grid-cell\" data-weight=\"0.68305084745763\">\n<div id=\"panel-5376-3-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"6\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<h3 class=\"widget-title\">Creating a Custom Capability<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n The <a href=\"https:\/\/de.wordpress.org\/plugins\/user-role-editor\/\" target=\"_blank\" rel=\"noopener\">User Role Editor<\/a> plugin is a popular and free plugin for editing WordPress users and user roles. For our project, we will create a new capability and use it to check whether the visitor has this permission or not. The query regarding whether they are authorized or not follows in the next paragraph concerning <em>functions.php<\/em>.  <\/p>\n<p>So, we create a capability named <em>oooooxooooo<\/em> and assign it to the &#8220;Family &#038; Friends&#8221; role, as well as the Admin role. If other roles are occupied on the WordPress installation (Editor, etc.), you can also assign the capability to those roles. In any case, DO NOT assign it to the &#8220;Subscriber&#8221; role!  <\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pg-5376-4\" class=\"panel-grid panel-no-style\" data-style=\"{\"background_display\":\"tile\",\"cell_alignment\":\"flex-start\"}\">\n<div id=\"pgc-5376-4-0\" class=\"panel-grid-cell\" data-weight=\"0.52054760381794\">\n<div id=\"panel-5376-4-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child\" data-index=\"7\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<h3 class=\"widget-title\">Additional Setting in functions.php<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n<p>Unfortunately, the Members plugin is not sufficient for our project, or rather, it is somewhat cumbersome. The Members plugin only enforces that visitors must log in. By default, however, a logged-in user has access to all content (pages\/posts). But even if you set user permissions for all pages and posts, the unauthorized visitor will still see, for example, the post titles; only the content itself is blocked.   <\/p>\n<p>That is not what we want; we want to block access completely.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"panel-5376-4-0-1\" class=\"so-panel widget widget_sow-editor panel-last-child\" data-index=\"8\" data-style=\"{\"background_image_attachment\":false,\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<div class=\"siteorigin-widget-tinymce textwidget\">\n To ensure that unauthorized visitors are redirected to a page containing information, for example, on why access is prohibited, we add additional code to the theme&#8217;s <em>functions.php<\/em> (ideally in a child theme; otherwise, the code will be lost during the next theme update). Brief explanations: <\/p>\n<ul>\n<li>Every theme has a <code>functions.php<\/code>. This central file controls the behavior of a theme and connects various files together <\/li>\n<li>The additional code checks three things:\n<ul>\n<li>whether the visitor is logged in,<\/li>\n<li>whether the visitor does not have the &#8220;oooooxooooo&#8221; capability<\/li>\n<li>and whether the user is not already on the &#8220;Stop&#8221; page<\/li>\n<\/ul>\n<p>If all three conditions are met, the visitor is redirected to the &#8220;Stop&#8221; page; otherwise, the visitor can view the pages\/posts. The third condition is important because if someone accesses the &#8220;Stop&#8221; page, no further redirection must occur; otherwise, the request turns into an infinite loop. <\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pgc-5376-4-1\" class=\"panel-grid-cell\" data-weight=\"0.47945239618206\">\n<div id=\"panel-5376-4-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child\" data-index=\"9\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<h3 class=\"widget-title\">Code for functions.php<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n<pre class=\"wp-block-code\"><code>function my_page_template_redirect(){\n  if( is_user_logged_in() && ! current_user_can( 'oooooxooooo' ) && ! is_page( 'stop' ) ){\n    wp_redirect( home_url( '\/stop\/' ) );\n    exit();\n  }\n}\nadd_action( 'template_redirect', 'my_page_template_redirect' );<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"panel-5376-4-1-1\" class=\"so-panel widget widget_sow-editor panel-last-child\" data-index=\"10\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<h3 class=\"widget-title\">Code for functions.php in Multisite<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n<pre class=\"wp-block-code\"><code>function my_page_template_redirect(){\n  if( is_user_logged_in() && ! current_user_can_for_site( get_current_blog_id(), 'oooooxooooo' ) && ! is_page( 'stop' ) ){\n    wp_redirect( home_url( '\/stop\/' ) );\n    exit();\n  }\n}\nadd_action( 'template_redirect', 'my_page_template_redirect' );<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pg-5376-5\" class=\"panel-grid panel-no-style\" data-style=\"{\"background_display\":\"tile\",\"cell_alignment\":\"flex-start\"}\">\n<div id=\"pgc-5376-5-0\" class=\"panel-grid-cell\" data-weight=\"1\">\n<div id=\"panel-5376-5-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"11\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<h3 class=\"widget-title\">Page with Info for Rejected Users<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n<p>Visitors who log in but do not have the required permissions should not simply see a blank page or some error message. It is much better to show these individuals a page stating that they do not have permission and should contact the homepage operator if necessary. An additional note for Facebook users who are using the Facebook login for the first time and therefore do not have permission is also useful.  <\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pg-5376-6\" class=\"panel-grid panel-no-style\" data-style=\"{\"background_display\":\"tile\",\"cell_alignment\":\"flex-start\"}\">\n<div id=\"pgc-5376-6-0\" class=\"panel-grid-cell\" data-weight=\"1\">\n<div id=\"panel-5376-6-0-0\" class=\"so-panel widget widget_sow-headline panel-first-child\" data-index=\"12\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-headline so-widget-sow-headline-default-6a77181822be\">\n<div class=\"sow-headline-container \">\n<h2 class=\"sow-headline\">Facebook Login<\/h2>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"panel-5376-6-0-1\" class=\"so-panel widget widget_sow-editor panel-last-child\" data-index=\"13\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<div class=\"siteorigin-widget-tinymce textwidget\">\n To ensure that you, as the homepage operator, do not have to create all your acquaintances first\u2014who would certainly find it difficult to remember the login data\u2014we install a Facebook login function. As you have probably seen before, on the homepage&#8217;s login page, next to the input fields for username and password, there is a button labeled &#8220;Connect with Facebook&#8221; or something similar. <\/p>\n<p>Regardless of which Facebook login plugin is used, we need a Facebook app that the plugin can connect to when a Facebook user wants to log in.<\/p>\n<p><strong>As of 2026:<\/strong> Meta now places significantly higher requirements on such apps (HTTPS, privacy and data deletion pages, and usually business verification and app review for users outside the app). For a private family homepage, Google Login, which the plugin mentioned below also provides for free, is often the easier path. <\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pg-5376-7\" class=\"panel-grid panel-no-style\" data-style=\"{\"background_display\":\"tile\",\"cell_alignment\":\"flex-start\"}\">\n<div id=\"pgc-5376-7-0\" class=\"panel-grid-cell\" data-weight=\"0.34956638755981\">\n<div id=\"panel-5376-7-0-0\" class=\"so-panel widget widget_sow-image panel-first-child panel-last-child\" data-index=\"14\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-image so-widget-sow-image-default-813df796d9b1\">\n<div class=\"sow-image-container\">\n<a href=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/fb-app-settings-1.png\">\t<img decoding=\"async\" alt=\"Facebook App Settings for Login\" src=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/fb-app-settings-1.png\" width=\"723\" height=\"844\" srcset=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/fb-app-settings-1.png 723w, https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/fb-app-settings-1-257x300.png 257w\" sizes=\"(max-width: 723px) 100vw, 723px\" title=\"Facebook App Data\" class=\"so-widget-image\"><br \/><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pgc-5376-7-1\" class=\"panel-grid-cell\" data-weight=\"0.65043361244019\">\n<div id=\"panel-5376-7-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"15\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<h3 class=\"widget-title\">Creating a Facebook App<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n To create a Facebook app, log in here: https:\/\/developers.facebook.com. Naturally, you must have Facebook login credentials; otherwise, you must register.<\/p>\n<ul>\n<li>Create a new app: App Name + Contact Email, select &#8220;Facebook Login&#8221; as the use case<\/li>\n<li>Customize Facebook Login: Add the &#8220;email&#8221; permission and enter the valid OAuth redirect URI displayed by the plugin (the website must be accessible via HTTPS)<\/li>\n<li>Settings > General: Enter App Domain, Privacy Policy URL, Terms of Service URL, and Data Deletion Instructions URL, Category, and App Icon; Add Platform -> Website -> Enter URL (save)<\/li>\n<li>To ensure that not only people with a role in the app can log in: go through business verification and app review, then switch the app from development mode to &#8220;Live&#8221;<\/li>\n<li>Copy the App ID and App Secret and paste them into WP<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pg-5376-8\" class=\"panel-grid panel-no-style\" data-style=\"{&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}\">\n<div id=\"pgc-5376-8-0\" class=\"panel-grid-cell\" data-weight=\"1\">\n<div id=\"panel-5376-8-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"16\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<h3 class=\"widget-title\">Setting Up Nextend Social Login<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n We are now using <a href=\"https:\/\/de.wordpress.org\/plugins\/nextend-facebook-connect\/\" target=\"_blank\" rel=\"noopener\">Nextend Social Login<\/a> as the plugin (as of 2026; the &#8220;WordPress Social Login&#8221; plugin previously recommended here was closed in 2023 due to a security vulnerability on wordpress.org): the basic version of the plugin is free and can connect Google and X (formerly Twitter) in addition to Facebook; other networks are available in the Pro version.<\/p>\n<p>To make the plugin do what we want, we need to configure the following:<\/p>\n<ol>\n<li>Copy data from the Facebook app and enter it into the plugin<\/li>\n<li>Registrations and logins should be allowed (in Nextend: <em>General > Membership > Enabled<\/em>)<\/li>\n<li>Users connecting via networks initially receive the &#8220;Subscriber&#8221; role\u2014this is the default role for new users, which we check again under <em>Settings > General<\/em> just to be safe: better safe than sorry!<\/li>\n<\/ol>\n<p>When a new Facebook user registers, we also want to be informed so we can change the permissions (or not, if they are not desired individuals). Nextend sends the standard WordPress notification for new registrations by default, so the admin receives an email. In the Pro version, &#8220;Admin&#8221; alone can be selected under <em>Registration notification sent to<\/em>.  <\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pg-5376-9\" class=\"panel-grid panel-no-style\" data-style=\"{\"background_display\":\"tile\",\"cell_alignment\":\"flex-start\"}\">\n<div id=\"pgc-5376-9-0\" class=\"panel-grid-cell\" data-weight=\"0.33333333333333\">\n<div id=\"panel-5376-9-0-0\" class=\"so-panel widget widget_sow-headline panel-first-child\" data-index=\"17\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-headline so-widget-sow-headline-default-4b28b9255a02\">\n<div class=\"sow-headline-container \">\n<h4 class=\"sow-headline\">Insert Facebook App Data<\/h4>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"panel-5376-9-0-1\" class=\"so-panel widget widget_sow-image panel-last-child\" data-index=\"18\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-image so-widget-sow-image-default-813df796d9b1\">\n<div class=\"sow-image-container\">\n<a href=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/wordpress-social-login-1-1.png\">\t<img decoding=\"async\" alt=\"WP Social Login: Insert Facebook App Data\" src=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/wordpress-social-login-1-1.png\" width=\"540\" height=\"776\" srcset=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/wordpress-social-login-1-1.png 540w, https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/wordpress-social-login-1-1-209x300.png 209w\" sizes=\"(max-width: 540px) 100vw, 540px\" title=\"WordPress Social Login - Facebook Settings\" class=\"so-widget-image\"><br \/><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pgc-5376-9-1\" class=\"panel-grid-cell\" data-weight=\"0.33333333333333\">\n<div id=\"panel-5376-9-1-0\" class=\"so-panel widget widget_sow-headline panel-first-child\" data-index=\"19\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-headline so-widget-sow-headline-default-4b28b9255a02\">\n<div class=\"sow-headline-container \">\n<h4 class=\"sow-headline\">General Settings<\/h4>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"panel-5376-9-1-1\" class=\"so-panel widget widget_sow-image panel-last-child\" data-index=\"20\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-image so-widget-sow-image-default-813df796d9b1\">\n<div class=\"sow-image-container\">\n<a href=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/wordpress-social-login-2-1.png\">\t<img decoding=\"async\" alt=\"WP Social Login: General Settings\" src=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/wordpress-social-login-2-1.png\" width=\"546\" height=\"662\" srcset=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/wordpress-social-login-2-1.png 546w, https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/wordpress-social-login-2-1-247x300.png 247w\" sizes=\"(max-width: 546px) 100vw, 546px\" title=\"WordPress Social Login - General Settings\" class=\"so-widget-image\"><br \/><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pgc-5376-9-2\" class=\"panel-grid-cell\" data-weight=\"0.33333333333333\">\n<div id=\"panel-5376-9-2-0\" class=\"so-panel widget widget_sow-headline panel-first-child\" data-index=\"21\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-headline so-widget-sow-headline-default-4b28b9255a02\">\n<div class=\"sow-headline-container \">\n<h4 class=\"sow-headline\">Permissions for New Logins<\/h4>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"panel-5376-9-2-1\" class=\"so-panel widget widget_sow-image panel-last-child\" data-index=\"22\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-image so-widget-sow-image-default-813df796d9b1\">\n<div class=\"sow-image-container\">\n<a href=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/wordpress-social-login-membership-level-1.png\">\t<img decoding=\"async\" alt=\"WP Social Login: Permissions for New Logins\" src=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/wordpress-social-login-membership-level-1.png\" width=\"530\" height=\"450\" srcset=\"https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/wordpress-social-login-membership-level-1.png 530w, https:\/\/www.saasweb.agency\/wp-content\/uploads\/2017\/07\/wordpress-social-login-membership-level-1-300x255.png 300w\" sizes=\"(max-width: 530px) 100vw, 530px\" title=\"WordPress Social Login - Membership Level\" class=\"so-widget-image\"><br \/><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pg-5376-10\" class=\"panel-grid panel-no-style\" data-style=\"{\"background_display\":\"tile\",\"cell_alignment\":\"flex-start\"}\">\n<div id=\"pgc-5376-10-0\" class=\"panel-grid-cell\" data-weight=\"1\">\n<div id=\"panel-5376-10-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"23\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<h3 class=\"widget-title\">Optional: Remove Admin Bar<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n<p>If you want users from the &#8220;Family &#038; Friends&#8221; group or those who are not admins (or do not have admin permissions) to not see the admin bar, you can hide it accordingly. To do this, code is again added to the <code>functions.php<\/code>: <\/p>\n<pre class=\"wp-block-code\"><code>function remove_admin_bar() {\nif( ! current_user_can('manage_options') && ! is_admin() ){\nshow_admin_bar(false);\n}\n}\nadd_action('after_setup_theme', 'remove_admin_bar');<\/code><\/pre>\n<p>Note: this naturally means that these users cannot easily access their profile and therefore cannot edit their own data. However, we can add an entry to a suitable menu, e.g., &#8220;Edit Profile,&#8221; which links to <em>https:\/\/my-website.tld\/wp-admin\/profile.php<\/em>. <\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"pg-5376-11\" class=\"panel-grid panel-no-style\" data-style=\"{\"background_display\":\"tile\",\"cell_alignment\":\"flex-start\"}\">\n<div id=\"pgc-5376-11-0\" class=\"panel-grid-cell\" data-weight=\"1\">\n<div id=\"panel-5376-11-0-0\" class=\"so-panel widget widget_sow-headline panel-first-child\" data-index=\"24\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-headline so-widget-sow-headline-default-6a77181822be\">\n<div class=\"sow-headline-container \">\n<h2 class=\"sow-headline\">Summary<\/h2>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"panel-5376-11-0-1\" class=\"so-panel widget widget_sow-editor panel-last-child\" data-index=\"25\" data-style=\"{\"background_display\":\"tile\"}\">\n<div class=\"so-widget-sow-editor so-widget-sow-editor-base\">\n<div class=\"siteorigin-widget-tinymce textwidget\">\n We have modified an existing homepage so that content can only be seen after logging in\u2014provided the permissions are correct.<\/p>\n<p>Logging in alone is not enough; the visitor must not belong to the <em>Subscriber<\/em> group (which is the default role when users are created) and must possess an additional <em>oooooxooooo<\/em> capability. Unauthorized visitors are redirected to the &#8220;Stop&#8221; page. <\/p>\n<p>In addition to all this, we have set up a &#8220;Facebook Connector&#8221;: Facebook users can log in without entering a username and password. Newly registered Facebook users automatically belong to the Subscriber group and are initially not allowed to see anything. Note: if the visitor uses an ad blocker, the Facebook login may fail.  <\/p>\n<p>As the administrator, I am automatically informed of new registrations: if I know the Facebook user, I assign them the &#8220;Family &#038; Friends&#8221; role.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<p class=\"blog-angebot wp-block-paragraph\"><strong>Are you planning a new website?<\/strong> We develop WordPress websites that you can maintain yourself. <a href=\"https:\/\/www.saasweb.agency\/en\/software\/technologies-frameworks\/wordpress\/wordpress-websites\/\">More about WordPress websites<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In a private setting, it is not uncommon to want to avoid sharing photos, videos, and texts with everyone. However, you still want to be able to share content with friends and family, and it should be simple (plus, they shouldn&#8217;t be given permissions to modify the homepage)&#8230; Many people therefore prefer to use Facebook \u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[983],"tags":[1487,2036,1794,1494,1218,1542,1955,1500,1954,2088,2123,1508,819,2163,1940,1758,1997],"class_list":["post-11553","post","type-post","status-publish","format-standard","hentry","category-tutorial","tag-app-id","tag-capability","tag-facebook-app","tag-facebook-login","tag-functions-php","tag-hook","tag-member","tag-members","tag-permission","tag-subscriber","tag-user-role","tag-user-role-editor","tag-wordpress","tag-wordpress-login","tag-wordpress-multisite-2","tag-wordpress-registration","tag-wordpress-social-login"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.saasweb.agency\/en\/wp-json\/wp\/v2\/posts\/11553","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.saasweb.agency\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.saasweb.agency\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.saasweb.agency\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.saasweb.agency\/en\/wp-json\/wp\/v2\/comments?post=11553"}],"version-history":[{"count":1,"href":"https:\/\/www.saasweb.agency\/en\/wp-json\/wp\/v2\/posts\/11553\/revisions"}],"predecessor-version":[{"id":11561,"href":"https:\/\/www.saasweb.agency\/en\/wp-json\/wp\/v2\/posts\/11553\/revisions\/11561"}],"wp:attachment":[{"href":"https:\/\/www.saasweb.agency\/en\/wp-json\/wp\/v2\/media?parent=11553"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.saasweb.agency\/en\/wp-json\/wp\/v2\/categories?post=11553"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.saasweb.agency\/en\/wp-json\/wp\/v2\/tags?post=11553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}