{"id":3828,"date":"2025-02-15T18:49:04","date_gmt":"2025-02-15T18:49:04","guid":{"rendered":"https:\/\/s-o-s.net\/friends\/"},"modified":"2025-02-15T18:49:04","modified_gmt":"2025-02-15T18:49:04","slug":"friends","status":"publish","type":"post","link":"https:\/\/s-o-s.net\/en_gb\/friends\/","title":{"rendered":"Friends"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<article id=\"post-85312\" class=\"alignwide post-85312 plugin type-plugin status-publish hentry plugin_tags-decentralized plugin_tags-friends plugin_tags-own-your-data plugin_tags-rss plugin_tags-social-network plugin_category-user-management plugin_contributors-akirk plugin_business_model-community plugin_committers-akirk\">\n<div class=\"plugin-banner\" id=\"plugin-banner-friends\"><\/div>\n<header class=\"plugin-header\">\n<div class=\"entry-heading-container\">\n<div>\n<div class=\"entry-thumbnail\">\n\t\t\t\t\t<img decoding=\"async\" class=\"plugin-icon\" srcset=\"https:\/\/ps.w.org\/friends\/assets\/icon-128x128.png?rev=3000664, https:\/\/ps.w.org\/friends\/assets\/icon-256x256.png?rev=3000664 2x\" src=\"https:\/\/ps.w.org\/friends\/assets\/icon-256x256.png?rev=3000664\" alt=\"\">\t\t\t\t<\/div>\n<div>\n<h1 class=\"plugin-title\">Friends<\/h1>\n<p>\t\t\t\t\t<span class=\"byline\">By <span class=\"author vcard\"><a target=\"_blank\" class=\"url fn n\" href=\"https:\/\/profiles.wordpress.org\/akirk\/\" rel=\"noopener\">Alex Kirk<\/a><\/span><\/span>\n\t\t\t\t<\/div>\n<\/p><\/div>\n<div class=\"plugin-actions\">\n<div class=\"wp-block-button is-small plugin-download download-button\"><a target=\"_blank\" class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/downloads.wordpress.org\/plugin\/friends.3.3.4.zip\" rel=\"noopener\">Download<\/a><\/div>\n<div class=\"wp-block-button is-small is-style-outline plugin-preview download-button is-style-outline--9\"><a target=\"_blank\" class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/wordpress.org\/plugins\/friends\/?preview=1\" rel=\"noopener\">Live Preview<\/a><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/header>\n<p><!-- .entry-header --><\/p>\n<p>\t<span id=\"description\"><\/span><br \/>\n\t<span id=\"reviews\"><\/span><br \/>\n\t<span id=\"installation\"><\/span><br \/>\n\t<span id=\"developers\"><\/span><br \/>\n\t<span id=\"advanced\" class=\"\"><\/span><br \/>\n\t<span id=\"section-links\"><\/p>\n<ul class=\"tabs clear\">\n<li id=\"tablink-description\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/friends\/#description\" rel=\"noopener\">Details<\/a><\/li>\n<li id=\"tablink-reviews\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/friends\/#reviews\" rel=\"noopener\">Reviews<\/a><\/li>\n<li id=\"tablink-installation\">\n\t\t\t\t<a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/friends\/#installation\" rel=\"noopener\">Installation<\/a>\n\t\t\t<\/li>\n<li id=\"tablink-developers\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/friends\/#developers\" rel=\"noopener\">Development<\/a><\/li>\n<\/ul>\n<div id=\"link-support\">\n\t\t\t<a target=\"_blank\" href=\"https:\/\/wordpress.org\/support\/plugin\/friends\/\" rel=\"noopener\">Support<\/a>\n\t\t<\/div>\n<p>\t<\/span><br \/>\n\t<script type=\"text\/javascript\">if ( '#changelog' == window.location.hash ) { window.setTimeout( function() { window.location.hash=\"#developers\"; }, 10 ); }<\/script><\/p>\n<div class=\"entry-content\">\n<div id=\"tab-description\" class=\"plugin-description section\">\n<h2 id=\"description-header\">Description<\/h2>\n<p>The Friends plugin allows you to follow content from other WordPress sites, and interact with them on your own site. You can follow friends and others via RSS. If you also have the ActivityPub plugin installed, you can follow people on Mastodon and other ActivityPub-compatible social networks.<\/p>\n<p><strong>Since version 2.6.0, no users will be created for subscriptions.<\/strong><\/p>\n<p><strong>Combine this plugin with the ActivityPub plugin to make your own WordPress your own Mastodon instance. Use the Enable Mastodon Apps to use mobile and desktop Mastodon apps with your own site.<\/strong><\/p>\n<p>The Friends Plugin also has a \u201cfriend request\u201d function which allows blogs to become friends with each other. This then allows private publishing on your blog while each of their friends has their own blog but will be able to see your privately published posts.<\/p>\n<p>There are many small aspects that make it powerful self-hosted social reader:<\/p>\n<p>You can\u2026<br \/>\n\u2013 Have multiple feeds per person, so you can subscribe to their blog(s) and social media account(s).<br \/>\n\u2013 Categorize incoming content with Post Formats and view all posts of a certain format across your friends.<br \/>\n\u2013 Define rules to filter incoming content (sometimes you\u2019re not interested in everything your friends do).<br \/>\n\u2013 Turn your favorite blog into your personal newsletter by receiving full-post notification e-mails<br \/>\n\u2013 Use feed rules to filter out content you are not interested in.<br \/>\n\u2013 Receive ePubs of your friends\u2019 posts to your eReader (via another plugin).<br \/>\n\u2013 Collect posts (from your feeds or around the web) in a collection for later reference (via another plugin).<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=4bz6GluXnsk\" rel=\"nofollow ugc noopener\"><\/a><\/p>\n<h3>Philosophy<\/h3>\n<p>The Friends Plugin was built to make use of what WordPress provides:<\/p>\n<ul>\n<li>You use the WordPress infrastructure (Gutenberg or Classic Editor, what you prefer) to create your posts.<\/li>\n<li>If a post is private, only logged-in friends can see it. They can only log in through their own Friends plugin on their blog.<\/li>\n<li>Therefore, your friend is just a user on your WordPress blog, their posts are theirs, you can delete them to unfriend them.<\/li>\n<li>No extra tables: The Friends plugin just uses a post type, options and some taxonomies to store its data. When you delete the plugin, your WordPress will be slim like before.<\/li>\n<\/ul>\n<p>In future, I could see mobile apps instead of talking to a third party, to talk to your own blog. It will have your friends\u2019 posts already fetched. Maybe the apps will be specialized, like Twitter or Instagram, where you\u2019d only interact with and create posts in the specific post format.<\/p>\n<p>The logo was created by Ramon Dodd, @ramonopoly. Thank you!<\/p>\n<p>Documentation for the plugin can be found on the <a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/wiki\" rel=\"nofollow ugc noopener\">GitHub project Wiki<\/a>.<\/p>\n<p><strong>Development of this plugin is done <a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\" rel=\"nofollow ugc noopener\">on GitHub<\/a>. Pull requests welcome. Please see <a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/issues\" rel=\"nofollow ugc noopener\">issues<\/a> reported there before going to the <a target=\"_blank\" href=\"https:\/\/wordpress.org\/support\/plugin\/friends\" rel=\"ugc noopener\">plugin forum<\/a>.<\/strong><\/p>\n<\/div>\n<div id=\"screenshots\" class=\"plugin-screenshots section\">\n<h2 id=\"screenshots-header\">Screenshots<\/h2>\n<ul class=\"plugin-screenshots\">\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-1.png?rev=3000664\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-1.png?rev=3000664\" alt=\"\"><\/a><figcaption>Compact view is like Google Reader<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-2.png?rev=3000664\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-2.png?rev=3000664\" alt=\"\"><\/a><figcaption>You can use it like a Feed Reader<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-3.png?rev=3000664\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-3.png?rev=3000664\" alt=\"\"><\/a><figcaption>But it is centered around users; you can have multiple feeds per person, even on social networks (parsing capabilities provided by plugins)<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-4.png?rev=3000664\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-4.png?rev=3000664\" alt=\"\"><\/a><figcaption>Extensible with plugins itself<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-5.png?rev=3000664\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-5.png?rev=3000664\" alt=\"\"><\/a><figcaption>Use the customizer to adapt it to your liking<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-6.png?rev=3000664\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-6.png?rev=3000664\" alt=\"\"><\/a><figcaption>Categorize incoming content with Post Formats and view all posts of a certain format across your friends<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-7.png?rev=3000664\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-7.png?rev=3000664\" alt=\"\"><\/a><figcaption>Use rules to filter incoming content (sometimes you\u2019re not interested in everything your friends do)<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-8.png?rev=3000664\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-8.png?rev=3000664\" alt=\"\"><\/a><figcaption>Friends users are plain WordPress users with low privileges<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-9.png?rev=3000664\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/friends\/assets\/screenshot-9.png?rev=3000664\" alt=\"\"><\/a><figcaption>A Friend Request is accepted in the users screen. Delete the user to reject it or accept the request to make them a friend<\/figcaption><\/figure>\n<\/li>\n<\/ul>\n<\/div>\n<div id=\"blocks\" class=\"plugin-blocks section\">\n<h2 id=\"blocks-header\">Blocks<\/h2>\n<p>This plugin provides 4 blocks.<\/p>\n<ul class=\"plugin-blocks-list\">\n<li class=\"plugin-blocks-list-item\">\n\t\t\t\t\t\t\t\t\t<span class=\"block-icon dashicons dashicons-groups\"><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"block-title\">Friend Message<\/span>\n\t\t\t\t\t\t\t<\/li>\n<li class=\"plugin-blocks-list-item\">\n\t\t\t\t\t\t\t\t\t<span class=\"block-icon dashicons dashicons-groups\"><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"block-title\">Friend Posts<\/span>\n\t\t\t\t\t\t\t<\/li>\n<li class=\"plugin-blocks-list-item\">\n\t\t\t\t\t\t\t\t\t<span class=\"block-icon dashicons dashicons-groups\"><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"block-title\">Follow Me<\/span>\n\t\t\t\t\t\t\t<\/li>\n<li class=\"plugin-blocks-list-item\">\n\t\t\t\t\t\t\t\t\t<span class=\"block-icon dashicons dashicons-groups\"><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"block-title\">Friends List<\/span>\n\t\t\t\t\t\t\t<\/li>\n<\/ul>\n<\/div>\n<div id=\"tab-installation\" class=\"plugin-installation section\">\n<h2 id=\"installation-header\">Installation<\/h2>\n<ol>\n<li>Upload the <code>friends<\/code> directory to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the \u2018Plugins\u2019 menu in WordPress<\/li>\n<\/ol>\n<\/div>\n<div id=\"faq\" class=\"plugin-faq section\">\n<h2 id=\"faq-header\">FAQ<\/h2>\n<dl>\n<dt id=\"does%20this%20plugin%20create%20custom%20tables%3F\">\n<h3>Does this plugin create custom tables?<\/h3>\n<\/dt>\n<dd>\n<p>No, all the functionality is achieved with standard WordPress means. Subscriptions or Friends are minimal-permission users on your install. External posts are cached in a custom post types and attributed to those users.<\/p>\n<\/dd>\n<dt id=\"why%20does%20this%20create%20users%20on%20my%20wordpress%20install%3F\">\n<h3>Why does this create users on my WordPress install?<\/h3>\n<\/dt>\n<dd>\n<p>I believe this is a very elegant way to attribute content and it allows to delete the users content when you delete them. The users have minimal privileges, so they cannot be used to post actual content to your site.<\/p>\n<p>The users can only be used for login through your specific friend\u2019s WordPress install (they are created with a strong password throw-away password), if they have been upgraded to a \u201cfriend\u201d or \u201caquaintance\u201d user.<\/p>\n<\/dd>\n<dt id=\"why%20is%20the%20friendship%20established%20between%20wordpress%20sites%20and%20not%20wordpress%20users%3F\">\n<h3>Why is the friendship established between WordPress sites and not WordPress users?<\/h3>\n<\/dt>\n<dd>\n<p>For one, this allows to stick with established WordPress configurations and terminologies. For example, you can use the WordPress mobile apps to post privately to your site.<\/p>\n<p>Secondly, a lot of WordPresses are like cell phones. Some are used by more than one person but mostly there is a 1:1 relationship between a WordPress blog and a person.<\/p>\n<p>If someone has multiple WordPresses this actually allows to segment your friendships. Close friends might want to follow all your blogs but you\u2019d only add your photographer friends to your photoblog.<\/p>\n<\/dd>\n<dt id=\"what%20if%20the%20friend%20request%20is%20deleted%20or%20not%20accepted%3F\">\n<h3>What if the friend request is deleted or not accepted?<\/h3>\n<\/dt>\n<dd>\n<p>You\u2019ll still see the public posts from the other WordPress, you\u2019ve subscribed to its public RSS feed.<\/p>\n<\/dd>\n<dt id=\"what%27s%20the%20point%3F%20if%20i%20want%20to%20post%20something%20privately%20i%20can%20use%20facebook.\">\n<h3>What\u2019s the point? If I want to post something privately I can use Facebook.<\/h3>\n<\/dt>\n<dd>\n<p>Well, that\u2019s actually exactly the point. Facebook owns your data, with WordPress you can decide where you want to host it and have all the benefits of running open source software.<\/p>\n<\/dd>\n<dt id=\"what%20happens%20if%20i%20modify%20or%20delete%20a%20post%3F\">\n<h3>What happens if I modify or delete a post?<\/h3>\n<\/dt>\n<dd>\n<p>There is a cache of your friends post in form of a Custom Post Type friend_post that is updated when you change a post. When you delete a post your friends\u2019 WordPresses are notified and they delete the cached post.<\/p>\n<\/dd>\n<\/dl>\n<\/div>\n<div id=\"tab-reviews\" class=\"plugin-reviews section\">\n<h2 id=\"reviews-header\">Reviews<\/h2>\n<div class=\"plugin-reviews\">\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/6ae651e154545fc870ce3b10fa0951283042e39058b8e9fb5a6b1ea3d9582718?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/6ae651e154545fc870ce3b10fa0951283042e39058b8e9fb5a6b1ea3d9582718?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/excellent-13790\/\" rel=\"noopener\">Excellent!<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/vuorijoki\/\" title=\"Posts by vuorijoki\" rel=\"author noopener\">vuorijoki<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">February 2, 2025<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">This is really an excellent app. It\u2019s possible to bridge to Bluesky with it and it\u2019s really easy to reblog etc. I really like the email alerts. The only difficulty is finding sites to follow. A list of sites would be nice.<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/cfbfdc2f6cf335c24660e24d0c4ed293a579028e65e51504d8afc2b3a4a15f32?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/cfbfdc2f6cf335c24660e24d0c4ed293a579028e65e51504d8afc2b3a4a15f32?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/you-can-use-to-bridge-to-bluesky-too\/\" rel=\"noopener\">You can use to bridge to BlueSky too!<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/solarbird\/\" title=\"Posts by solarbird\" rel=\"author noopener\">solarbird<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">November 22, 2024<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I decided to try to use this to bridge my self-hosted ActivityPub-enabled WordPress blog to BlueSky as well, using the opt-in BridgyFed service which connects BlueSky to the Federation. I found a problem and went to both Friends and BridgyFed to see if we could get it working \u2013 and over a weekend(!), got it sorted out and now people are following my blog from BlueSky via Friends and it\u2019s pretty dang seamless!<\/p>\n<p>Federation is amazing, this plugin is great, and thanks devs getting this whole fleet of connectors working this quickly was awesome. \ud83d\ude00<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/c56fe4470b22ec2cca3e8f6001e0033459d85cb070491e8ad8ca7ac014a0e889?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/c56fe4470b22ec2cca3e8f6001e0033459d85cb070491e8ad8ca7ac014a0e889?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/really-excited-about-the-possibilities-with-this-plugin\/\" rel=\"noopener\">really excited about the possibilities with this plugin<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/kennethrg\/\" title=\"Posts by kennethrg\" rel=\"author noopener\">kennethrg<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">May 4, 2024<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"review-replies\">1 reply<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I started using this plugin in combination with the ActivityPub plugin.  ActivityPub broadcasts my posts to Mastodon and other services across the Fediverse; the Friends plugin allows my followers to interact with my posts.  Together the result is that my WordPress site acts (sort of) as a Fediverse instance.  Very cool!After seeing the possibilities here, I am working on creating a small network of WordPress sites using the Friends plugin.  Each of the sites represents an organization working on related community advocacy projects, and I am excited about the possibilities for connecting and sharing information in this way.<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/4f2d7fd22348539b6c93e8a76a18ddd8ea8c7cee249de55f6261fc0f16703009?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/4f2d7fd22348539b6c93e8a76a18ddd8ea8c7cee249de55f6261fc0f16703009?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/while-far-from-perfect-this-is-an-astoundingly-good-idea\/\" rel=\"noopener\">While far from perfect this is an astoundingly good idea<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/lordmatt\/\" title=\"Posts by lordmatt\" rel=\"author noopener\">lordmatt<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">November 12, 2023<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"review-replies\">1 reply<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I\u2019ve got a few blogs running friends and I love it.<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/55be13f44d2f6b002041de75a3981568cfc3842eaa7a07e6a42f980539c129f3?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/55be13f44d2f6b002041de75a3981568cfc3842eaa7a07e6a42f980539c129f3?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/i-love-it-883\/\" rel=\"noopener\">I love it!<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/pfefferle\/\" title=\"Posts by Matthias Pfefferle\" rel=\"author noopener\">Matthias Pfefferle<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">November 17, 2022<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">A federated network based on RSS!<\/div>\n<\/p><\/div>\n<\/article><\/div>\n<p>\t\t<a target=\"_blank\" class=\"reviews-link\" href=\"https:\/\/wordpress.org\/support\/plugin\/friends\/reviews\/\" rel=\"noopener\"><br \/>\n\t\t\tRead all 5 reviews\t\t<\/a><\/div>\n<div id=\"tab-developers\" class=\"plugin-developers section\">\n<h2 id=\"developers-header\">Contributors &amp; Developers<\/h2>\n<div class=\"plugin-contributors\">\n<p>\u201cFriends\u201d is open source software. The following people have contributed to this plugin.<\/p>\n<p><span class=\"screen-reader-text\">Contributors<\/span><\/p>\n<ul id=\"contributors-list\" class=\"contributors-list\">\n<li>\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/12b93d2a2baed035aa99f0cfbc4f00f3ed5d8a59563694910bcdffbccb5fa256?s=32&amp;d=mm&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/12b93d2a2baed035aa99f0cfbc4f00f3ed5d8a59563694910bcdffbccb5fa256?s=64&amp;d=mm&amp;r=g 2x\" class=\"avatar avatar-32 photo\" height=\"32\" width=\"32\">\t\t\t\t<a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/akirk\/\" rel=\"noopener\"><br \/>\n\t\t\t\t\tAlex Kirk\t\t\t\t<\/a>\n\t\t\t<\/li>\n<\/ul><\/div>\n<div class=\"plugin-development\">\n<p>\u201cFriends\u201d has been translated into 1 locale. Thank you to <a target=\"_blank\" href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/friends\/contributors\" rel=\"noopener\">the translators<\/a> for their contributions.<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/friends\" rel=\"noopener\">Translate \u201cFriends\u201d into your language.<\/a><\/p>\n<h3>Interested in development?<\/h3>\n<p><a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/browser\/friends\/\" rel=\"noopener\" class=\"broken_link\">Browse the code<\/a>, check out the <a target=\"_blank\" href=\"https:\/\/plugins.svn.wordpress.org\/friends\/\" rel=\"noopener\">SVN repository<\/a>, or subscribe to the <a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/log\/friends\/\" rel=\"noopener\" class=\"broken_link\">development log<\/a> by <a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/log\/friends\/?limit=100&amp;mode=stop_on_copy&amp;format=rss\" rel=\"noopener\" class=\"broken_link\">RSS<\/a>.<\/p>\n<\/div>\n<\/div>\n<div id=\"tab-changelog\" class=\"plugin-changelog section\">\n<h2 id=\"changelog-header\">Changelog<\/h2>\n<h3>3.3.4<\/h3>\n<ul>\n<li>Reduce the size of the Follow link (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/472\" rel=\"nofollow ugc noopener\">#472<\/a>)<\/li>\n<li>Fix unfollowing in Enable Mastodon Apps (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/471\" rel=\"nofollow ugc noopener\">#471<\/a>)<\/li>\n<li>Bring back the collapse button for statuses (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/470\" rel=\"nofollow ugc noopener\">#470<\/a>)<\/li>\n<li>Update plugins.json by @liviacarolgouvea (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/468\" rel=\"nofollow ugc noopener\">#468<\/a>)<\/li>\n<li>Don\u2019t rewrite data URLs (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/467\" rel=\"nofollow ugc noopener\">#467<\/a>)<\/li>\n<li>Prepare for the next Enable Mastodon Update (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/466\" rel=\"nofollow ugc noopener\">#466<\/a>)<\/li>\n<li>Don\u2019t add domain for mentions (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/465\" rel=\"nofollow ugc noopener\">#465<\/a>)<\/li>\n<li>Boosting: Show when there is a problem retrieving a URL (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/464\" rel=\"nofollow ugc noopener\">#464<\/a>)<\/li>\n<li>Fix wrong link in User Notifications (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/462\" rel=\"nofollow ugc noopener\">#462<\/a>)<\/li>\n<li>Don\u2019t double fetch URL for boosting (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/461\" rel=\"nofollow ugc noopener\">#461<\/a>)<\/li>\n<li>Prevent 404s for static templates (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/452\" rel=\"nofollow ugc noopener\">#452<\/a>)<\/li>\n<li>ActivityPub parser: avoid PHP warning by @jeherve (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/459\" rel=\"nofollow ugc noopener\">#459<\/a>)<\/li>\n<li>Dashboard: make widget title translatable by @jeherve (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/457\" rel=\"nofollow ugc noopener\">#457<\/a>)<\/li>\n<li>At A Glance messaging: ensure numbers are correctly displayed by @jeherve (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/458\" rel=\"nofollow ugc noopener\">#458<\/a>)<\/li>\n<li>Prevent error when no summary is set (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/453\" rel=\"nofollow ugc noopener\">#453<\/a>)<\/li>\n<li>Fix reversed Diff for post updates in the log (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/450\" rel=\"nofollow ugc noopener\">#450<\/a>)<\/li>\n<\/ul>\n<h3>3.3.3<\/h3>\n<ul>\n<li>Remove the setting to change the post formats in the main query loop because it was confusing (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/446\" rel=\"nofollow ugc noopener\">#446<\/a>)<\/li>\n<li>Protect posts that I have reacted on (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/447\" rel=\"nofollow ugc noopener\">#447<\/a>)<\/li>\n<li>Fix Typo which prevented unannounces (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/443\" rel=\"nofollow ugc noopener\">#443<\/a>)<\/li>\n<li>Plugins: Fix the More Details link (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/445\" rel=\"nofollow ugc noopener\">#445<\/a>)<\/li>\n<li>Check the right user option about the follower e-mail (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/444\" rel=\"nofollow ugc noopener\">#444<\/a>)<\/li>\n<\/ul>\n<h3>3.3.2<\/h3>\n<ul>\n<li>Fixed sending ActivityPub boosts (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/440\" rel=\"nofollow ugc noopener\">#440<\/a>)<\/li>\n<li>Fixed deleting by global retention number (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/439\" rel=\"nofollow ugc noopener\">#439<\/a>)<\/li>\n<\/ul>\n<h3>3.3.1<\/h3>\n<ul>\n<li>Fix some styling issues (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/437\" rel=\"nofollow ugc noopener\">#437<\/a>)<\/li>\n<li>Fix FediPress installation (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/435\" rel=\"nofollow ugc noopener\">#435<\/a>)<\/li>\n<\/ul>\n<h3>3.3.0<\/h3>\n<ul>\n<li>Styling Overhaul! (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/431\" rel=\"nofollow ugc noopener\">#431<\/a>)<\/li>\n<li>Add the FediPress theme (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/433\" rel=\"nofollow ugc noopener\">#433<\/a>)<\/li>\n<li>Incoming Feed Items: Fix in-article hash links (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/426\" rel=\"nofollow ugc noopener\">#426<\/a>)<\/li>\n<li>Add more functions for a browser extension (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/427\" rel=\"nofollow ugc noopener\">#427<\/a>)<\/li>\n<li>Browser Extension: API Key per user (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/429\" rel=\"nofollow ugc noopener\">#429<\/a>)<\/li>\n<li>Fix parsing Pixelfed\u2019s Image attachments (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/430\" rel=\"nofollow ugc noopener\">#430<\/a>)<\/li>\n<li>Add the friend\u2019s avatar to the page header (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/422\" rel=\"nofollow ugc noopener\">#422<\/a>)<\/li>\n<li>Add inline follow link (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/432\" rel=\"nofollow ugc noopener\">#432<\/a>)<\/li>\n<li>Log the newly supported ActivityPub events to the Friends Log (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/423\" rel=\"nofollow ugc noopener\">#423<\/a>)<\/li>\n<li>Augment the ActivityPub New Follower E-Mail (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/434\" rel=\"nofollow ugc noopener\">#434<\/a>)<\/li>\n<\/ul>\n<h3>3.2.3<\/h3>\n<ul>\n<li>ActivityPub: Support update of posts and people (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/421\" rel=\"nofollow ugc noopener\">#421<\/a>)<\/li>\n<li>Add support for ActivityPub Move activity (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/420\" rel=\"nofollow ugc noopener\">#420<\/a>)<\/li>\n<li>Make tagged Friend Posts accessible (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/419\" rel=\"nofollow ugc noopener\">#419<\/a>)<\/li>\n<li>Uninstall: Delete more taxonomy entries (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/415\" rel=\"nofollow ugc noopener\">#415<\/a>)<\/li>\n<li>Standardize REST Error messages (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/413\" rel=\"nofollow ugc noopener\">#413<\/a>)<\/li>\n<li>Use the ActivityPub blog user as an actor if set to blog profile only (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/411\" rel=\"nofollow ugc noopener\">#411<\/a>)<\/li>\n<li>Add a Duplicate Remover (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/409\" rel=\"nofollow ugc noopener\">#409<\/a>)<\/li>\n<\/ul>\n<h3>3.2.2<\/h3>\n<ul>\n<li>Move permissions checks into a dedicated permission_callback (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/408\" rel=\"nofollow ugc noopener\">#408<\/a>)<\/li>\n<li>Add more checks around friendships (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/407\" rel=\"nofollow ugc noopener\">#407<\/a>)<\/li>\n<\/ul>\n<p>Hoping that this hardening will bring back the plugin to the WordPress.org directory after <a target=\"_blank\" href=\"https:\/\/www.wordfence.com\/threat-intel\/vulnerabilities\/wordpress-plugins\/friends\/friends-321-missing-authorization\" rel=\"nofollow ugc noopener\">this issue<\/a> was reported. While I am unsure it qualified to get the plugin taken down, I\u2019ve done some hardening and bugfixing in the above pull requests. Unfortunately it was not reported in a way that it could be patched in time. If you have a security issue to report, please follow the instructions on <a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/blob\/main\/SECURITY.md\" rel=\"nofollow ugc noopener\">https:\/\/github.com\/akirk\/friends\/blob\/main\/SECURITY.md<\/a> and\/or report through <a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/security\" rel=\"nofollow ugc noopener\">https:\/\/github.com\/akirk\/friends\/security<\/a>.<\/p>\n<h3>3.2.1<\/h3>\n<ul>\n<li>OPML Import: Support OPMLs without nesting (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/403\" rel=\"nofollow ugc noopener\">#403<\/a>)<\/li>\n<\/ul>\n<h3>3.2.0<\/h3>\n<ul>\n<li>Improve Translate Live compatibility (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/401\" rel=\"nofollow ugc noopener\">#401<\/a>)<\/li>\n<li>Fix blog follower count in sidebar (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/400\" rel=\"nofollow ugc noopener\">#400<\/a>)<\/li>\n<\/ul>\n<h3>3.1.9<\/h3>\n<ul>\n<li>Fix bug with loading the main theme (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/398\" rel=\"nofollow ugc noopener\">#398<\/a>)<\/li>\n<\/ul>\n<h3>3.1.8<\/h3>\n<ul>\n<li>Fix missing JavaScript on the frontend (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/396\" rel=\"nofollow ugc noopener\">#396<\/a>)<\/li>\n<\/ul>\n<h3>3.1.7<\/h3>\n<ul>\n<li>Add a theme selector (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/393\" rel=\"nofollow ugc noopener\">#393<\/a>)<\/li>\n<li>Followers: Add Support for ActivityPub plugins blog profile (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/394\" rel=\"nofollow ugc noopener\">#394<\/a>)<\/li>\n<li>Generate the suggested user login from the display name (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/395\" rel=\"nofollow ugc noopener\">#395<\/a>)<\/li>\n<\/ul>\n<h3>3.1.6<\/h3>\n<ul>\n<li>Site Health: Check if the cron job is enabled (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/391\" rel=\"nofollow ugc noopener\">#391<\/a>)<\/li>\n<li>Fix starring of a friend (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/392\" rel=\"nofollow ugc noopener\">#392<\/a>)<\/li>\n<li>Layout improvements props @liviagouvea in (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/384\" rel=\"nofollow ugc noopener\">#384<\/a>)<\/li>\n<\/ul>\n<h3>3.1.5<\/h3>\n<ul>\n<li>Fix next page articles attached in the wrong place (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/388\" rel=\"nofollow ugc noopener\">#388<\/a>)<\/li>\n<li>Allow an extra redirect when discovering feeds (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/389\" rel=\"nofollow ugc noopener\">#389<\/a>)<\/li>\n<\/ul>\n<h3>3.1.4<\/h3>\n<ul>\n<li>Fix Warning:  Undefined variable $account (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/385\" rel=\"nofollow ugc noopener\">#385<\/a>)<\/li>\n<li>Fixes for Friend Messages (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/387\" rel=\"nofollow ugc noopener\">#387<\/a>)<\/li>\n<li>Add Podcast Support (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/386\" rel=\"nofollow ugc noopener\">#386<\/a>)<\/li>\n<\/ul>\n<h3>3.1.3<\/h3>\n<ul>\n<li>Add AJAX refreshing of feeds (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/382\" rel=\"nofollow ugc noopener\">#382<\/a>)<\/li>\n<li>Fix Fatal in the MF2 library (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/381\" rel=\"nofollow ugc noopener\">#381<\/a>)<\/li>\n<\/ul>\n<h3>3.1.2<\/h3>\n<ul>\n<li>Fix support for threads.net (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/378\" rel=\"nofollow ugc noopener\">#378<\/a>)<\/li>\n<li>Add a warning if a user has not enabled ActivityPub on their threads.net account (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/377\" rel=\"nofollow ugc noopener\">#377<\/a>)<\/li>\n<li>Upgrade and improve the MF2 library (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/374\" rel=\"nofollow ugc noopener\">#374<\/a>)<\/li>\n<\/ul>\n<h3>3.1.1<\/h3>\n<ul>\n<li>Improve Name Detection (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/372\" rel=\"nofollow ugc noopener\">#372<\/a>)<\/li>\n<li>Add a Button to the Welcome page (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/373\" rel=\"nofollow ugc noopener\">#373<\/a>)<\/li>\n<\/ul>\n<h3>3.1.0<\/h3>\n<ul>\n<li>Add mark tag CSS to emails to ensure highlighting (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/365\" rel=\"nofollow ugc noopener\">#365<\/a>)<\/li>\n<li>Only show the dashboard widgets if the user has enough permissions (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/368\" rel=\"nofollow ugc noopener\">#368<\/a>)<\/li>\n<li>Prevent retrieving the same feed in parallel (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/366\" rel=\"nofollow ugc noopener\">#366<\/a>)<\/li>\n<li>Add Friend: Use more info from the given URL (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/369\" rel=\"nofollow ugc noopener\">#369<\/a>)<\/li>\n<li>Log ActivityPub actions and add the publish date to Announcements (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/364\" rel=\"nofollow ugc noopener\">#364<\/a>)<\/li>\n<li>Improve OPML Support (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/370\" rel=\"nofollow ugc noopener\">#370<\/a>)<\/li>\n<li>Update blueprints for previewing in WordPress Playground (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/371\" rel=\"nofollow ugc noopener\">#371<\/a>)<\/li>\n<\/ul>\n<h3>3.0.0<\/h3>\n<ul>\n<li>Show Mutual Followers and allow removing of followers (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/359\" rel=\"nofollow ugc noopener\">#359<\/a>)<\/li>\n<li>Add an e-mail notification for new and lost followers (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/358\" rel=\"nofollow ugc noopener\">#358<\/a>)<\/li>\n<li>Add the ability to disable notifications per post format and feed parser (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/357\" rel=\"nofollow ugc noopener\">#357<\/a>)<\/li>\n<li>Fix 404 on the New private post widget props @liviacarolgouvea (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/361\" rel=\"nofollow ugc noopener\">#361<\/a>)<\/li>\n<li>Improve ghost.org ActivityPub compatibility (<a target=\"_blank\" href=\"https:\/\/github.com\/akirk\/friends\/pull\/356\" rel=\"nofollow ugc noopener\">#356<\/a>)<\/li>\n<\/ul>\n<\/div><\/div>\n<p><!-- .entry-content --><\/p>\n<p>\t<!-- .entry-meta --><br \/>\n<\/article>\n<p><br \/>\n<br \/><a href=\"https:\/\/wordpress.org\/plugins\/friends\/\" target=\"_blank\" rel=\"noopener\">Source link <\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Friends By Alex Kirk Download Live Preview Details Reviews Installation Development Support Description The Friends plugin allows you to follow content from other WordPress sites, and interact with them on your own site. You can follow friends and others via RSS. If you also have the ActivityPub plugin installed, you can follow people on Mastodon [&hellip;]<\/p>","protected":false},"author":193,"featured_media":3829,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"give_campaign_id":0,"footnotes":""},"categories":[1933,39,40],"tags":[2612],"class_list":["post-3828","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-community-plugin","category-lite-version","category-wp-plugin-solution","tag-friends"],"acf":[],"fifu_image_url":"https:\/\/ps.w.org\/friends\/assets\/banner-772x250.png?rev=3000664","_links":{"self":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts\/3828","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/users\/193"}],"replies":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/comments?post=3828"}],"version-history":[{"count":0,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts\/3828\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/media\/3829"}],"wp:attachment":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/media?parent=3828"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/categories?post=3828"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/tags?post=3828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}